捕获所有类型的异常编程安卓

我正在为Android操作系统开发一个应用程序。由于这是我的第一个应用程序,我认为我已经犯了一些编程错误,因为我几乎无法将错误追溯到它们的原因。因此,我在尝试修复错误时猜测,有没有办法通过一次尝试捕获来捕获整个活动生命周期中的所有类型的异常?

那真是太棒了,看着我的Galaxy S说:“对不起,应用程序应用程序已经意外停止了”:(


答案 1

我真的,真的不推荐这个...

try {
     ...
} catch (Exception e) {
     // This will catch any exception, because they are all descended from Exception
}

您是否正在查看堆栈跟踪以调试问题?追踪它们应该不难。查看LogCat并查看红色文本的大块,以查看哪种方法导致您的崩溃以及您的错误是什么。

如果您以这种方式捕获所有错误,则您的程序将无法按预期运行,并且当您的用户报告错误时,您将不会从Android Market获得错误报告。

您可以使用 UncaughtExceptionHandler 来防止某些崩溃。我使用一个,但仅用于将堆栈跟踪打印到文件中,以便在远离计算机的手机上调试应用程序时使用。但是,在我完成此操作后,我将未捕获的异常传递给默认的Android UncaughtExceptionHandler,因为我希望Android能够正确处理它,并让用户有机会向我发送堆栈跟踪。


答案 2

我假设像纯java

try {

} catch(throwable t) {

}

但这是非常糟糕的做法。

另请查看

设置未捕获异常处理程序


推荐