需要考虑三种情况:
案例一:
public class Test {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
return;
System.out.println(3);
}
}
案例二:
public class Test {
public static void main(String[] args) {
try{
System.out.println(1);
return;
}finally{
System.out.println(2);
}
System.out.println(3);
}
}
案例三:
public class Test {
public static void main(String[] args) {
try{
System.out.println(1);
return;
}catch(Exception e){
System.out.println(2);
}
System.out.println(3);
}
}
我明白,如果情况 1 语句 System.out.println(3)
无法访问,这就是编译器错误的原因,但为什么编译器在情况 3 中不显示任何错误。
另请注意,在情况 2 中它甚至是编译器错误。
最佳答案
案例三:
如果引发异常,那么您的所有代码都可用,并且它会打印 1,2,3。这就是为什么您在那里没有任何错误(无法访问的代码)的原因。
案例 2:
在这种情况下,无论如何你都不会到达 System.out.println(3)
,因为你总是从 main
方法返回。
关于java - 在包含 return 的 try/catch block 之后执行语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23892578/