如何处理android中另一个线程抛出的异常?

时间:2014-02-12 10:15:53

标签: android multithreading exception-handling

我正在使用第三方库,而我的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捕获调用它的线程的异常,它在这种情况下如何捕获子线程的异常?

0 个答案:

没有答案