抛出异常必须导致程序终止

时间:2010-12-20 20:50:56

标签: java exception-handling

抛出异常是否必须导致程序终止?

我认为不,我只是想确定

5 个答案:

答案 0 :(得分:5)

它取决于抛出异常的线程,以及应用程序中同时运行的其他线程。

未捕获异常终止抛出它的线程。如果其余的线程只是守护线程,那么是的,应用程序将被终止。

根据Thread.setDaemon(boolean)文件:

  

当运行的唯一线程都是守护程序线程时,Java虚拟机退出。

答案 1 :(得分:3)

在Java和.NET中,如果你不处理异常,最让你的程序终止。

简单地抛出异常不会终止程序,因此。抛出后会发生什么,决定将会发生什么。

答案 2 :(得分:3)

不,它不必导致它终止。您可以捕获异常并对其执行一些有用的操作,例如向用户显示发生错误的消息以及原因。

答案 3 :(得分:2)

未能捕获异常可能会导致程序终止,但抛出异常的行为不会。至少,任何应用程序都应该有一些最后的防线来捕获所有其他未处理的异常并处理它们(即使处理它们意味着,至少对某些人来说,将它们抛出应用程序并终止,因为外部的东西是应用期望这个。)

答案 4 :(得分: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);
}