gpt4 book ai didi

java - 如果我们可以在 if else block 中使用 try catch 中定义的标志来处理finally block ,那么在java中准确使用finally block

转载 作者:行者123 更新时间:2023-12-02 13:31:00 26 4
gpt4 key购买 nike

在过去的几天里,我试图深入研究java,我遇到了try catch finally异常处理。

我知道finally无论如何都会执行,但我想知道“为什么”我们也可以在catch中或catch之后处理异常,为什么是finally?

我想出了答案

https://stackoverflow.com/a/23537289/7794329

public class tryCatch {
public static void main(String[] args) {

double p = 1.0D;
String str = "bla";
try{
p = Double.valueOf(str);
}
catch(Exception ex){
System.out.println("Exception Happened");
return; //return statement here!!!
}finally{
System.out.println("Finally");
}
System.out.println("After finally");

System.out.println("again finally");
}
}

输出

Exception Happened
Finally

如果我删除该返回会怎样?并在finally的代码之后进行处理。它会运行..那么为什么我们只需要 return 语句就需要finally呢?我是不是犯了错误,通过返回代码并在finally中强制处理它。我还可以在catch中制作一个标志并将其放入if else block 中以处理catch中的异常

Why do we use finally blocks?

我真的完全不明白,有人可以让我用通俗的语言理解吗?如果我们可以从try catch处理甚至catch失败我们可以在 if else 中处理,为什么还要使用finally呢?就像如果 catch 遇到异常运行这个...否则...

最佳答案

如果抛出异常,finally block 将在 catch block 之后运行,然后控制流将转到 catch block 决定的位置,即返回。如果去掉 return 语句,您会发现打印了其他内容。

关于java - 如果我们可以在 if else block 中使用 try catch 中定义的标志来处理finally block ,那么在java中准确使用finally block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179061/

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