我正在使用第三方库,而我的android Application类正在从该库扩展应用程序类。在库应用程序类的构造函数中,一个线程正在启动。现在在某些情况下该线程正在抛出NumberFormatException。我如何处理我的应用程序中的第三方库的线程中抛出的异常。如果我在我的应用程序类onCreate方法中编写下面的代码,它将捕获该异常。
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("Exception caught" " + e);
}});
如果我在我的代码中使用静态方法setDefaultUncaughtExceptionHandler
,它也会捕获其他线程的异常,或者只捕获应用程序ui线程。
更多信息 我写了一个小程序来测试它。
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("Exception caught." + t.getName() + " "
+ e);
}
});
new Thread() {
@Override
public void run() {
throw new RuntimeException();
}
}.start();
}
如果setDefaultUncaughtExceptionHandler捕获调用它的线程的异常,它在这种情况下如何捕获子线程的异常?