今天讲了Java的错误处理,感觉挺出人意外的一点是在一个小程序段里:
public int adv(int a, int b)
{
int result = 0;
try
{
result = a/b;
return result;
}catch(Exception e)
{
e.printStackTrace();
}finally
{
Sys.out.println("this is finally");
}
return 0;
}
如果调用adv(5, 0),它的结果当然是打印"this is finally",那么如果是adv(10, 5)呢,它的最终结果是什么呢?
当时出人意料的结果不是2,而是
2
"this is finally"
finally在这其中起到了关键的作用,无论程序出不出错都会执行finally下的程序段代码。