京东笔试问到try catch finally对于return的处理,自己做一下实验。
import org.junit.Test;
public class TestTry {
@Test
public void test()
{
System.out.println(test1());
System.out.println(test2());
}
public int test1()
{
try
{
return 1;
}
catch(Exception e)
{
throw e;
}
finally
{
System.out.println("我是第一个finally");
return 2;
}
}
public int test2()
{
try
{
String a=null;
char[] b=a.toCharArray();
}
catch(Exception e)
{
return 1;
}
finally
{
System.out.println("我是第二个finally");
return 2;
}
}
}
结果如下:
我是第一个finally
2
我是第二个finally
2
分析一下,就是try,catch中的return不会直接return,会执行完finally之后再return