2010-12-20 583 views

回答

3

在Java和.NET,如果你不處理異常,將最想引起你的程序終止。

簡單地拋出一個異常不會終止程序,因此。它在被拋出後會發生什麼,決定了會發生什麼。

3

不,它不必導致它終止。您可以捕獲異常並執行一些有用的操作,例如向用戶顯示發生錯誤的消息以及原因。

2

未能捕捉到異常可能會導致程序終止,但拋出一個不會。至少,任何應用程序都應該具有某種最後一道防線,以捕獲所有其他未處理的異常並處理它們(即使處理這些異常意味着至少在某些情況下將它們拋出應用程序並終止,因爲某些外部應用程序應用程序期望這一點)。

2

只有「未處理的異常」會導致程序崩潰。要處理異常,請使用以下格式

try { 
     // May Throw ApocalypseException 
     functionThatMightBlowUpTheWorld(); 
    } 
catch (ApocalypseException e){ 
     System.err.println("We accidentally almost blew up the world because: "); 
     System.err.println(e.message); 
} 
+1

等等......這段代碼來自維基解密嗎?我認爲這不應該被釋放,**永遠**!大聲笑 – 2010-12-20 21:07:48

+3

我喜歡提出有趣的例子。 :)但是,如果您在離心機的微控制器上遇到問題,我不負責。 – EnabrenTane 2010-12-20 21:16:25

5

它取決於拋出異常的線程以及在應用程序中同時運行的其他線程。

一個未捕獲異常終止它被拋出的線程。如果剩下的線程只是守護進程線程,那麼是的,應用程序將被終止。

根據Thread.setDaemon(boolean)文檔:

Java虛擬機退出時正在運行的線程都是守護線程。

相關問題