gpt4 book ai didi

java - 为什么在Java中调用抛出RuntimeException的方法而没有处理异常时程序没有终止?

转载 作者:行者123 更新时间:2023-11-30 06:16:26 25 4
gpt4 key购买 nike

第 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 block 来捕获在类 1 中调用 good.method() 时抛出的 NullPointerException(它扩展了 RunTimeException)。当我运行该程序时,Eclipse 中的控制台指示该程序仍在运行,因为它没有显示在控制台框的顶部,就像程序执行结束时通常那样。

为什么程序还在运行?

如何在不按下红色停止按钮的情况下停止程序执行?

最佳答案

当您抛出未捕获的异常时,您发布的程序将终止。我自己测试过。

防止 JVM 终止的唯一方法是运行非守护线程。例如,如果您显示了 GUI,则必须确保终止 EDT 以使应用程序完全终止。

关于java - 为什么在Java中调用抛出RuntimeException的方法而没有处理异常时程序没有终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com