线程中出现异常的处理
package Seven; public class MyThread extends Thread { @Override public void run() { String username = null; System.out.println(username.hashCode()); } }
package Seven; public class Main1 { public static void main(String[] args) { MyThread t = new MyThread(); t.start(); } }
空指针异常,在java多线程技术中,可以对多线程中的异常进行捕获,使用的是UncaughtExceptionHandler类,从而可以对发生的异常进行有效的处理
package Seven; import java.lang.Thread.UncaughtExceptionHandler; public class Main2 { public static void main(String[] args) { MyThread t1 = new MyThread(); t1.setName("线程t1"); t1.setUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { System.out.println("线程:" + t.getName() + " 出现了异常:"); e.printStackTrace(); } }); t1.start(); MyThread t2 = new MyThread(); t2.setName("线程t2"); t2.start(); } }
方法setUncaughtExceptionHandler()是给指定线程对象设置异常处理器