在过去的几天我试图深入挖掘java,我遇到了try catch finally
异常处理。在java中如果我们可以处理它,如果我们可以处理它在try块中定义一个标志块的确切使用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
如果我删除的回报;并在最后的代码后面处理。它会运行..所以我们为什么最终只需要因为return语句?是不是像我通过returing代码,并强行在finally.I处理它做的失误还可以在捕捉一个标志,并且把它放在一个的if else块来处理渔获
异常我真的完全不明白,有人能用通俗的语言让我理解吗?为什么我们用最后,如果我们能够从尝试捕捉甚至捕捉处理失败我们可以if else
处理它就像如果捕获了异常运行此... ELSE ...
它经常被用来允许你以一种(相对)安全的方式关闭资源,比如文件等,尽管现在几天来,'Closeable'和'try-with-resource'这个问题不大。基本上,当有一些必须执行的操作时,无论“try”如何退出,你都需要使用'finally' – MadProgrammer
'return'语句导致方法在执行完最后一个块后结束。最终模块用于保证某些事情,即设想出现特定的服务崩溃(银行交易,无论是什么),最终想要的结果,悬而未决的交易,还是将通知转发给用户的干净空间? :)所以,基本上,清理是最终块为您提供的可能性之一。 – Seth
@MadProgrammer同意,但我们也可以在if/else块中使用try catch中的标志来处理它。为什么最后? – doe