public class Test{
public static String output="";
public static void foo(int i){
try{
if(i==1){
throw new Exception();
}
output+="1";
}
catch(Exception e){
output+="2";
return;
}
finally{
output+="3";
}
output+="4";
}
public static void main(String args[]){
foo(0);
foo(1);
System.out.println(output);
}
}
为什么不是134234啊,而是13423
public static String output="";
public static void foo(int i){
try{
if(i==1){
throw new Exception();
}
output+="1";
}
catch(Exception e){
output+="2";
return;
}
finally{
output+="3";
}
output+="4";
}
public static void main(String args[]){
foo(0);
foo(1);
System.out.println(output);
}
}
为什么不是134234啊,而是13423
处理好后 从处理的地方后面继续执行
package test;public class Test
{
public static String output = ""; public static void foo(int i) throws Exception
{
try
{
if (i == 1)
{
throw new Exception();
}
output += "1";
}
finally
{
output += "3";
}
output += "4";
} public static void main(String args[])
{
try
{
foo(0);
}
catch (Exception e)
{
output += "2";
}
try
{
foo(1);
}
catch (Exception e)
{
output += "2";
}
System.out.println(output);
}
}这样就是13423
output+="2";
return;
}注意这里的return
发生异常,也就是 i==1 的时候,直接return掉了,根本没有执行 +"4"这里
如果要得到你想要的结果 134234
就把这里的return 去掉