Android - 一般异常捕手

时间:2014-12-25 15:11:43

标签: java android exception-handling stack-trace

我试图将Facebook整合到我的应用中,所以我按照所有说明进行操作。运行它时,在onResume事件结束后,我得到一个我无法从代码中捕获的异常。

有没有办法设置一般的异常捕获器,所以无论如何,它都会捕获它?

模拟器根本不会抛出任何异常,因此我无法将其用于此

更新:我在此处找到了它:Using Global Exception Handling on android

错误来自Facebook本身,它与使用proguard

有关

3 个答案:

答案 0 :(得分:1)

  

Throwable类是Java语言中所有错误和异常的超类。

如果你发现throwable,你可以捕获所有类型的错误和异常。

try {
    // code
} catch(Throwable e) {
    // handle throwable
}

然而,强烈不推荐和糟糕的做法/设计。您永远不应该捕获一般错误和异常。你应该分析你的特定异常并解决问题,而不是简单地用try / catch忽略它!

答案 1 :(得分:1)

试试这个解决方案:

  1. 创建一个implement Thread.UncaughtExceptionHandler的类(这个 要使用uncaughtExceptions处理的类,让我们调用它 class ExceptionHandler。
  2. 创建一个extends Application的班级, 让我们调用这个类App,不要忘记在中声明这个 应用程序标记下的清单文件:android:name="your_package_path.App"
  3. 您的App类中的
  4. 会覆盖方法onCreate(),并添加以下行:Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));

答案 2 :(得分:0)

有一个基本的Exception类。所以,如果你喜欢这样:

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

你将捕获在try块中调用的任何方法抛出的任何异常。 但请记住,并不总是抛出异常。有时候没有结果可以返回,或者其他什么。