java线程带来的异常,java多线程练习之捕获子线程异常例子
本文章給大家介紹java多線程練習之捕獲子線程異常一個實例,希望對大家會有所幫助。
java多線程程序中,所有線程都不允許拋出未捕獲的checked exception,也就是說各個線程需要自己把自己的checked exception處理掉。但是無法避免的是unchecked exception,也就是RuntimeException,當拋出異常時子線程會結束,但不會影響主線程。
通過try catch是無法捕獲子線程異常的,Thread對象提供了setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)方法用來獲取線程中產生的異常。
實戰:
| ?代碼如下 | 復制代碼 |
package threads; import java.lang.Thread.UncaughtExceptionHandler; public class TextException { public static void main(String[] args) { Test test = new Test(); test.setUncaughtExceptionHandler(new UncaughtExceptionHandler() { public void uncaughtException(Thread t, Throwable e) { System.out.println(t.getName() " : " e.getMessage()); // TODO } }); } public static class Test extends Thread { public Test() { } public void run() { throw new RuntimeException("just a test"); } } } | |
總結
以上是生活随笔為你收集整理的java线程带来的异常,java多线程练习之捕获子线程异常例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php maximum,解决PHP程序运
- 下一篇: oracle归档日志的概念,浅谈Orac