提问者:小点点

当Android中发生异常时,如何让程序自动打印堆栈跟踪


有没有一种方法可以在异常发生时自动打印堆栈跟踪?我知道我可以通过用try-catch语句手动包围一个块来做到这一点,但是没有先验知识在程序中异常会发生在哪里,并且在可疑区域中逐块执行会非常低效,因为可能有很多。那么在Android中是否有任何配置选项或任何编程方式来做到这一点?(比如在最高级别的方法中包围一个try-catch块?,但是什么是最高级别的方法)


共3个答案

匿名用户

在您的Application类中定义一个全局异常处理程序,并将您需要的任何代码添加到其中。

Thread.setDefaultUncaughtExceptionHandler(
                new DefaultExceptionHandler(this));

建议您仍然重新抛出捕获的异常,以便应用程序停止运行,因为它将处于不稳定状态,不这样做可能会导致应用程序冻结。

匿名用户

catch (Exception e) {e.printStackTrace();}

我相信最高级别是应用程序级别。但一般来说,只要在通常的活动生命周期中捕获它就足够了。

匿名用户

扩展Exception并在自定义Exception类中执行任何您想要的操作。