zoukankan      html  css  js  c++  java
  • Java 线程异常处理器

    Thread.UncaughtExceptionHandler 是Thread类的一个静态内部接口,该接口只有一个方法:

    void uncaughtException(Thread t, Throwable e),其中t代表出现异常的线程,e代表抛出的异常。

    如果线程执行过程中抛出了一个未处理的异常,则会在线程结束前找到对应的未处理异常处理器,调用上面的方法,处理该异常。

    Thread 类提供了两个方法用来设置异常处理器

    static setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 为该线程类的所有对象都设置默认的异常处理器。

    setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 为指定的线程对象设置异常处理器。

    示例如下:

    public class UnCaughtExceptionHandlerTest {
        static class UnCaughtExceptionHandler implements Thread.UncaughtExceptionHandler{
    
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                System.out.println(t + " 异常:" + e);
            }
            
        }
        
        public static void main(String[] args) {
            Thread.currentThread().setUncaughtExceptionHandler(new UnCaughtExceptionHandler());
            
            int a = 5 / 0;
            System.out.println("normal over!");
        }
    
    }

    执行结果

    Thread[main,5,main] 异常:java.lang.ArithmeticException: / by zero

    由上可以看出,与catch不同的是,异常处理器处理异常后,程序并不会继续执行,所以也不会正常结束。

  • 相关阅读:
    打造系统分析师核心技能
    需求输出---一个创业团队需求卡壳的故事
    Nodejs前端服务器压缩图片
    node使用buffer生成图片
    NodeJS 常用模块积累
    ImageMagick图片服务器
    linux安装杀软 clamAV
    等保2.0与等保1.0的变化
    负载均衡的原理、分类、实现架构,以及使用场景
    等保2.0 三级基线要求项
  • 原文地址:https://www.cnblogs.com/zj2012zy/p/5318971.html
Copyright © 2011-2022 走看看