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); } }}
?
?
?
?