有没有办法在Exception发生时自动打印堆栈跟踪?我理解我可以通过try-catch语句手动包围一个块来实现,但是没有先验知识在程序中会发生异常,并且在可疑区域中逐块地执行它将是超级低效的,因为那里'可能很多。那么在Android中是否有任何配置选项或任何编程方式?(如在最高级别的方法中包围try-catch块?,但最高级别的方法是什么)
答案 0 :(得分:3)
在Application
类中定义全局异常处理程序,并添加所需的任何代码。
Thread.setDefaultUncaughtExceptionHandler(
new DefaultExceptionHandler(this));
建议您仍然重新抛出捕获的异常,以便应用程序停止运行,因为它将处于不稳定状态而不这样做会导致应用程序冻结。
答案 1 :(得分:0)
catch (Exception e) {e.printStackTrace();}
最高级别是我认为的应用程序级别。但总的来说,只要抓住通常的活动生命周期应该就足够了。
答案 2 :(得分:0)
扩展异常并在自定义异常类中执行任何操作。
答案 3 :(得分:0)
有两种主要的例外情况:
在大多数情况下,你无法真正从第一个恢复。 (如果出现意外问题,你怎么知道如何安全地恢复?)这通常是未经检查的异常,你不必在某处捕获它们。
系统/框架捕获未捕获的异常并自动记录!
注意第二种例外情况!它们通常不是未经检查的,必须通过throws
子句进行缓存或指定。处理它们,可能是log them,并尽可能恢复。
This document解释了如何阅读Android设备上的错误日志和其他日志。还有一些应用程序可以显示设备本身的日志。
另请阅读此basic exception tutorial!