`

Thread UncaughtExceptionHandler

阅读更多

    做web开发的时候,一般都是在Controller统一捕捉异常,在业务逻辑里抛出自定义的异常;如果代码中使用了多线程,线程中出错,或者你在线程中抛出一个异常,在最外层Controller里是无法捕捉到线程中的异常的,

Thread类中定义了一个内部接口UncaughtExceptionHandler,此接口用来统一处理线程出错后的处理,自己可定义一个类,来处理对应的错误

class MyHandler implements Thread.UncaughtExceptionHandler {
    @Override
    public void uncaughtException(Thread t, Throwable e) {
        System.out.println("我在处理错误,你呢?");
        System.out.println("线程" + t.getName() + "抛出异常!");
        e.printStackTrace();
    }
}


public static void main (String[] args) {
        try {
            ThreadWithExcpetion t1 = new ThreadWithExcpetion();
            t1.setUncaughtExceptionHandler(new MyHandler());
            t1.start();
        } catch (Exception e) {
            System.out.println("能捕捉到吗?");
        }

    }

 上面的代码,只会执行MyHandler类的uncaughtException方法,而不会进入catch语句块中!

分享到:
评论

相关推荐

    Android捕获异常处理——UncaughtExceptionHandler

    要注册自定义的 `UncaughtExceptionHandler`,你需要创建一个实现 `Thread.UncaughtExceptionHandler` 接口的类,并重写 `uncaughtException()` 方法。然后,在应用程序的主线程上设置这个处理器: ```java public ...

    UncaughtExceptionHandler Demo

    `java.lang.Thread.UncaughtExceptionHandler`是Java提供的一个接口,它的主要任务是处理线程中未被捕获的异常。如果一个线程在执行过程中遇到了未处理的异常,并且该线程没有设置`UncaughtExceptionHandler`,那么...

    java UncaughtExceptionHandler Demo

    `Thread.UncaughtExceptionHandler`接口定义了一个方法:`void uncaughtException(Thread t, Throwable e)`。当线程结束时,如果线程中存在未被捕获的异常,那么系统会调用这个方法,传入当前线程对象`t`和未捕获的...

    Thread捕捉异常示例

    通过实现`Thread.UncaughtExceptionHandler`接口,并将其设置为线程的`uncaughtExceptionHandler`,可以在线程中捕获未处理的异常。例如: ```java class CustomExceptionHandler implements Thread....

    Android开发使用UncaughtExceptionHandler捕获全局异常

    为了解决这个问题,开发者可以使用`UncaughtExceptionHandler`来捕获全局异常,从而进行自定义的错误处理和日志记录,甚至有可能恢复应用的正常运行。以下是对这一技术的详细解释。 `UncaughtExceptionHandler`是...

    线程组ThreadGroup

    Thread.UncaughtExceptionHandler 接口是 Java 中的一个异常处理接口,当线程抛出未捕获的异常时,会调用这个接口来处理异常。 ThreadGroup 实现了这个接口,以便在子线程抛出未捕获的异常时可以进行处理。 CAS...

    CrashHandler

    Android 应用不可避免的会发生crash 即崩溃,无论程序写的多好...java的Thread中有一个UncaughtExceptionHandler接口,该接口的作用主要是为 了 当 Thread 因未捕获的异常而突然终止时,调用处理程序。 崩溃信息捕获,

    JavaThread.pdf

    - 当线程中抛出未捕获的异常时,可以设置一个自定义的Thread.UncaughtExceptionHandler来处理。 - 通过设置线程的setUncaughtExceptionHandler方法来指定异常处理器。 3. **线程组ThreadGroup** - Java允许将...

    java多线程thread实例

    可以在`Thread`类中覆盖`uncaughtExceptionHandler`属性,定义异常处理逻辑。 通过学习和实践`TestThread.java`这个实例,你可以更好地理解Java多线程的原理和操作,这对于开发高并发、高性能的应用程序至关重要。

    android 捕捉异常并上传至服务器的简单实现

    首先,我们需要创建一个自定义的`BaseApplication`类,这个类继承自`Application`,并实现`Thread.UncaughtExceptionHandler`接口。`Thread.UncaughtExceptionHandler`是Java线程的未捕获异常处理器,当应用程序中...

    android全局异常处理

    Thread.UncaughtExceptionHandler currentUEH = Thread.getDefaultUncaughtExceptionHandler(); // 创建并设置自定义的异常处理器 CustomExceptionHandler customExceptionHandler = new CustomExceptionHandler...

    安卓异常捕获

    首先,我们需要创建一个自定义的`UncaughtExceptionHandler`类,继承自`Thread.UncaughtExceptionHandler`: ```java public class CustomExceptionHandler implements Thread.UncaughtExceptionHandler { private...

    基于java的开发源码-线程错误捕获工具 CheckThread.zip

    首先,Java线程的错误捕获主要依赖于`try-catch-finally`语句块和`Thread.UncaughtExceptionHandler`接口。在多线程环境下,当一个线程抛出未捕获的异常时,如果没有设置特定的处理机制,这个异常会终止线程的执行,...

    android全局异常捕获

    `Thread.UncaughtExceptionHandler`是Java线程处理未捕获异常的接口,当线程抛出一个未捕获的异常时,系统会调用该接口的`uncaughtException`方法。 以下是一个简单的全局异常捕获实现步骤: 1. 创建自定义的`...

    拦截android系统异常

    首先,Android系统的异常处理主要是通过`Thread.UncaughtExceptionHandler`来实现的。这是一个全局的未捕获异常处理器,当应用程序中某个线程抛出了一个未捕获的异常,系统会调用这个处理器的`uncaughtException()`...

    Android中处理崩溃异常

    1. 实现`UncaughtExceptionHandler`接口:开发者可以创建自己的`UncaughtExceptionHandler`类,实现`uncaughtException(Thread, Throwable)`方法。在这个方法中,你可以记录错误信息、发送崩溃报告或者执行一些清理...

    实现捕获应用的运行时异常

    Java语言提供了`Thread.UncaughtExceptionHandler`接口,用于处理未捕获的异常。在Android中,每个线程都有一个默认的`UncaughtExceptionHandler`,当线程抛出一个未被捕获的异常时,这个处理器会被调用。默认情况下...

    对android crash定位以及捕获的源代码

    这段源代码中,`MyExceptionHandler` 类实现了 `Thread.UncaughtExceptionHandler` 接口,重写了 `uncaughtException` 方法,当发生未捕获异常时,会记录Crash日志并发送报告。在 `CustomApplication` 的 `onCreate`...

    UncaughtException不让Android应用异常退出

    通过实现`Thread.UncaughtExceptionHandler`接口,我们可以在异常发生时执行清理工作或显示用户友好的错误信息。 2. **android:process** 属性: 在AndroidManifest.xml中,我们可以通过在Activity、Service等组件...

Global site tag (gtag.js) - Google Analytics