标签:end 应用 tun index 无限 tor width ado str
public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)x
public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)public Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()public Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)x
public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)public static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()public static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()public static interface Thread.UncaughtExceptionHandlerpublic static interface Thread.UncaughtExceptionHandlervoid uncaughtException(Thread t, Throwable e) x
void uncaughtException(Thread t, Throwable e) public class Test {
public static void main(String[] args) {
setDefaultUncaughtExceptionHandler();
test();
}
private static void test() {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("子线程异常前");
System.out.println(1 / 0);
}
}).start();
System.out.println("当前线程异常前");
System.out.println(1 / 0);
System.out.println("异常后的代码不能执行了");
}
private static void setDefaultUncaughtExceptionHandler() {
UncaughtExceptionHandler currentHandler = new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("【当前线程的Handler处理异常信息】" + t.toString() + "\n" + e.getMessage());
}
};
UncaughtExceptionHandler defaultHandler = new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
printWriter.write("start------------\n");
e.printStackTrace(printWriter);
printWriter.write("------------end");
printWriter.close();
System.out.println("【默认的Handler处理异常信息】" + writer.getBuffer().toString());
}
};
Thread.currentThread().setUncaughtExceptionHandler(currentHandler);
Thread.setDefaultUncaughtExceptionHandler(defaultHandler);
}
}public class Test { public static void main(String[] args) { setDefaultUncaughtExceptionHandler(); test(); } private static void test() { new Thread(new Runnable() { public void run() { System.out.println("子线程异常前"); System.out.println(1 / 0); } }).start(); System.out.println("当前线程异常前"); System.out.println(1 / 0); System.out.println("异常后的代码不能执行了"); } private static void setDefaultUncaughtExceptionHandler() { UncaughtExceptionHandler currentHandler = new UncaughtExceptionHandler() { public void uncaughtException(Thread t, Throwable e) { System.out.println("【当前线程的Handler处理异常信息】" + t.toString() + "\n" + e.getMessage()); } }; UncaughtExceptionHandler defaultHandler = new UncaughtExceptionHandler() { public void uncaughtException(Thread t, Throwable e) { StringWriter writer = new StringWriter(); PrintWriter printWriter = new PrintWriter(writer); printWriter.write("start------------\n"); e.printStackTrace(printWriter); printWriter.write("------------end"); printWriter.close(); System.out.println("【默认的Handler处理异常信息】" + writer.getBuffer().toString()); } }; Thread.currentThread().setUncaughtExceptionHandler(currentHandler); Thread.setDefaultUncaughtExceptionHandler(defaultHandler); }}子线程异常前
当前线程异常前
【当前线程的Handler处理异常信息】Thread[main,5,main]
/ by zero
【默认的Handler处理异常信息】start------------
java.lang.ArithmeticException: / by zero
at Test$1.run(Test.java:16)
at java.lang.Thread.run(Thread.java:745)
------------end子线程异常前当前线程异常前【当前线程的Handler处理异常信息】Thread[main,5,main]/ by zero【默认的Handler处理异常信息】start------------java.lang.ArithmeticException: / by zero at Test$1.run(Test.java:16) at java.lang.Thread.run(Thread.java:745)------------end线程 Thread.UncaughtExceptionHandler 异常捕获
标签:end 应用 tun index 无限 tor width ado str
原文地址:https://www.cnblogs.com/baiqiantao/p/79bf1e7f0803557c9195acec7af1e244.html