2015-09-07 55 views

回答

3

您可以檢查How uncaught exceptions are handled

的Java實際上根據 線程它們發生處理捕獲的異常。當在一個特定的線程中發生未捕獲的異常時,Java會查找所謂的未捕獲的異常處理程序,實際上是接口UncaughtExceptionHandler的一個實現。 後一個接口有一個handleException()方法, 實施者將覆蓋該方法以採取適當的操作,例如將 堆棧跟蹤打印到控制檯。正如我們稍後會看到的那樣,我們實際上可以安裝我們自己的UncaughtExceptionHandler實例來處理 未捕獲的特定線程的異常,甚至整個系統的 。

具體操作過程如下。當未捕獲的異常 發生時,JVM將執行以下操作:

  • 它調用一個特殊的私有方法,dispatchUncaughtException(),在其中發生異常Thread類;
  • 然後它終止發生異常的線程1。

enter image description here

0

如果Exception對象存在,並且被拋出,然後拉胡爾已經很好地回答。

有趣的是如何處理新的異常對象,而不是拋出。這是一種編程技術,可以獲得一些運行時信息,如堆棧,調用異常構造函數等。

  e= new Exception(); 
      StackTraceElement[] st = e.getStackTrace(); 
      for(StackTraceElement s:st) 
      { 
       s.getLineNumber() 
      } 
// NO throw 
相關問題