首页 > 代码库 > try catch 与 return 和 finally 关系。
try catch 与 return 和 finally 关系。
例如,我打开了一个不存在的文件
import java.io.*;
public class Demo {
public static void main(String[] args) {
try
{
FileReader fr=new FileReader("d:\\aa.txt");
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("11");
}
}
我自己试过,后面的11会打印出来,但我看视频时老师说异常后面的语句不会执行,所以想知道下具体的解答。
答:
1.try
{
}
catch(Exception e)
{
}
你的 11已经超出 异常捕抓呀。 你有异常处理要终止程序应该在 catch 里。
如果try块中的语句被后面的catch块捕获并处理了,那么try,,catch后面的语句就还会运行的,如果不被捕获,那后面的就不能运行。
问题2:finally在return前执行还是return后?、
答: finally和return完全是独立执行了! 虽然finally先于return执行,不过finally无论如何都无法修改return的结果。
这就是为什么,一个方法最好只做一件事,而且尽量不能有多个返回值。(坑很深,切勿一个方法多个return!)。
try catch 与 return 和 finally 关系。