java线程错误处理类UncaughtExceptionHandler
java线程异常处理类UncaughtExceptionHandler
java提了一个线程异常处理类,当线程执行的时候如果出现异常,可以调用该函数,进行一些善后工作,比如释放资源、清理数据等工作。通过这种方式,线程不需要关注因为异常导致资源不能释放等问题。
package thread.exception; /* * 1、Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个异常而被终止 * 2、主线程之所以不处理子线程抛出的RuntimeException,是因为线程是异步的,子线程没结束,主线程可能已经结束了 * * http://blog.csdn.net/wh62592855/article/details/8088827 */ import java.lang.Thread.UncaughtExceptionHandler; public class TestThreadExceptionHandler { public static void main(String[] args) { ExceptionThread thread = new ExceptionThread(); ThreadExceptionHandler handler = new ThreadExceptionHandler(); thread.setUncaughtExceptionHandler(handler); thread.start(); } } /** * UncaughtExceptionHandler:线程异常回调 */ class ThreadExceptionHandler implements UncaughtExceptionHandler { public void uncaughtException(Thread a, Throwable e) { System.out.println("exception occur--"+e); } } /** * 会抛出异常的线程 */ class ExceptionThread extends Thread { public ExceptionThread() { } public void run() { for (int i = 3; i >= 0; i--) { System.out.println(30 / i); } } }