2010-12-20 169 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虚拟机退出时正在运行的线程都是守护线程。

相关问题