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

抛出异常是否必须导致程序终止? 我认为不,我只想确定     
已邀请:
它取决于抛出异常的线程,以及应用程序中同时运行的其他线程。 未捕获的异常终止抛出它的线程。如果其余的线程只是守护线程,那么是的,应用程序将被终止。 根据Thread.setDaemon(boolean)文档:   当运行的唯一线程都是守护程序线程时,Java虚拟机将退出。     
不,它不必导致它终止。您可以捕获异常并对其执行一些有用的操作,例如向用户显示发生错误的消息以及原因。     
在Java和.NET中,如果您不处理异常,那么最有可能导致程序终止。 简单地抛出异常不会终止程序,因此。抛出之后会发生什么,决定将要发生什么。     
未能捕获异常可能会导致程序终止,但抛出异常的行为不会。至少,任何应用程序都应该有一些最后的防线来捕获所有其他未处理的异常并处理它们(即使处理它们意味着,至少对某些人来说,将它们抛出应用程序并终止,因为外部的东西是应用期望这个)。     
只有“Unhandled Exceptions”才会导致程序崩溃。要处理异常,请使用以下表单
try {
        // May Throw ApocalypseException
        functionThatMightBlowUpTheWorld();
    }
catch (ApocalypseException e){
         System.err.println("We accidentally almost blew up the world because: ");
         System.err.println(e.message);
}
    

要回复问题请先登录注册