处理多个运行Java线程上的异常

处理多个运行Java线程上的异常,java,multithreading,exception,Java,Multithreading,Exception,我正在开发一个java应用程序,我想知道如何处理多个运行线程上的异常。有什么例子吗?谢谢如果我正确理解了您的问题,您会询问如何检测由于未处理的异常而完成的线程 为此,您需要实现UncaughtExceptionHandler。在处理程序的实现中,最简单有用的活动是记录未捕获的异常 其中一个示例与执行器一起使用: final Thread.UncaughtExceptionHandler DEFAULT_HANDLER = new Thread.UncaughtExceptionHandl

我正在开发一个java应用程序,我想知道如何处理多个运行线程上的异常。有什么例子吗?谢谢

如果我正确理解了您的问题,您会询问如何检测由于未处理的异常而完成的线程

为此,您需要实现
UncaughtExceptionHandler
。在处理程序的实现中,最简单有用的活动是记录未捕获的异常

其中一个示例与执行器一起使用:

    final Thread.UncaughtExceptionHandler DEFAULT_HANDLER = new Thread.UncaughtExceptionHandler() {
        @Override
        public void uncaughtException(Thread t, Throwable e) {
            log.error("", e);
        }
    };

    ExecutorService executorService = Executors.newCachedThreadPool(new ThreadFactory() {
        @Override
        public Thread newThread(Runnable r) {
            Thread t = new Thread(r);
            t.setUncaughtExceptionHandler(DEFAULT_HANDLER);
            return t;
        }
    });

    executorService.execute(new Runnable() {
        @Override
        public void run() {
            throw new RuntimeException("log me");
        }
    });
请看一下:这里有完整的解释和示例代码。