有没有办法在一个地方捕获所有“未捕获”的例外并让应用继续?
我看到我可以使用setUncaughtExceptionHandler来做一些日志记录等等,但应用程序仍然会终止。我想要一些我可以记录异常的东西,告诉用户他的动作失败了,让他继续前进(尝试别的东西)。
感谢。
答案 0 :(得分:2)
没有。我不确定你为什么要它。从已知抛出异常的方法中捕获异常,并测试代码以避免NullPointerException等异常。这就是编写优秀代码的方法。
答案 1 :(得分:0)
很抱歉再次访问这样一个旧帖子,但由于没有正确答案,我觉得有必要提供解决方案。
将此添加到每次使用应用时打开的活动(例如,MainActivity) -
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
Log.e("Exception"+Thread.currentThread().getStackTrace()[2],paramThrowable.getLocalizedMessage());
}
});
它的作用是为未捕获的异常设置默认处理程序,并在弹出时不退出应用程序。然而,强大的力量带来了巨大的责任。我不建议您使用此方法来逃避在代码中捕获异常的责任(例如,使用try-catch)。在启动之前测试您的代码以使其尽可能无错误。