线程异常的处理
1. 非运行时异常(Unchecked Exception)
必须捕获并处理,因为run()方法并不支持throws语句
2.运行时异常(Runtime Exception)
2.1默认在控制台输出异常信息
2.2设置UncaughtException异常处理器来自定义处理操作
异常处理器:实现Thread.UncaughtExceptionHandler接口
public class ThreadExceptionHandler implements Thread.UncaughtExceptionHandler { @Override public void uncaughtException(Thread t, Throwable e) { System.out.println(t.getName() + " throws an exception"); e.printStackTrace(); } }
测试运行时异常的处理:
public class TestException implements Runnable { //抛出数组下标越界异常 @Override public void run() { int[] a = new int[1]; System.out.println(a[2]); } public static void main(String[] args) { Thread t = new Thread(new TestException()); //设置运行时异常处理器 t.setDefaultUncaughtExceptionHandler(new ThreadExceptionHandler()); t.start(); } }