[英]Java : How to check if a method throws a exception and terminate when it does?
[英]Why does the program not terminate when a method that throws RuntimeException is called without handling the exception in Java?
第1類:
package hf;
public class apples
{
public static void main(String[] args)
{
Good good = new Good();
good.method();
}
}
第2類:
package hf;
public class Goodie extends NullPointerException
{
}
第3類:
package hf;
public class Good
{
public void method() throws Goodie
{
System.out.println("Goodmethod");
throw new Goodie();
}
}
我沒有使用任何try / catch塊來捕獲在類1中調用good.method()時拋出的NullPointerException(擴展RunTimeException)。當我運行該程序時,Eclipse中的控制台指示該程序仍在運行因為它不顯示在控制台框的頂部,就像程序執行結束時通常會顯示的那樣。
為什么程序仍在運行?
如何在不按紅色停止按鈕的情況下停止程序執行?
當您引發未捕獲的異常時,您發布的程序將終止。 我只是自己測試過。
防止JVM終止的唯一方法是運行非守護程序線程。 例如,如果顯示了GUI,則必須確保將EDT終止為該應用程序才能完全終止。
當我們在Eclipse中以調試模式運行應用程序時,如果設置了Windows->Preferences->Java->Debug->Suspend execution on uncaught exceptions
,它將在未捕獲的異常上停止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.