gpt4 book ai didi

java - `finally` 中的断点未被击中

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:55 24 4
gpt4 key购买 nike

我正在搞乱一些 try...catch...finally 执行,并注意到 finally 中的断点似乎不会被命中:

    try {
System.out.println("in try");
int num = 5 / 0;
} catch (ArithmeticException e) {
System.out.println("in catch");
} finally {
System.out.println(); //breakpoint here
System.out.println("in finally");
}

finally 中的断点似乎没有命中,但它打印成功。

但是,如果我将 try 更改为 int num = 5/1;,因此不会进入 catch,断点就会命中。

我使用的是 Netbeans 8.1。

这有什么原因吗?

最佳答案

发生这种情况是因为在catch中,如果你看到你的代码,你就会无限循环抛出函数

exampleMethod() 正在调用 exampleMethod2() , exampleMethod2() 正在调用 exampleMethod() ,因此您有一个带有函数的循环,这就是您收到 StackoverFlowError 的原因

尝试函数不调用自身

    public static void main(String[] args) {
SpringApplication.run(AuthApplication.class, args);
try {
System.out.println("in try");
int num = 5 / 0;
} catch (ArithmeticException e) {
System.out.println("in catch");
exampleMethod();
} finally {
System.out.println(); // <--- breakpoint here
System.out.println("in finally");
}
}

static void exampleMethod() {

}

在这个例子中,最后刹车点被击中

关于java - `finally` 中的断点未被击中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53868172/

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