public int getNum(){
try {
int a = 1/0;
return 1;
}catch (Exception e){
return 2;
}finally {
return 3;
}
}
- 在try中遇到异常,代码不会继续执行,会直接跳到catch语句中,
- 但是在异常机制中有这么一个原则,如果在catch中遇到了return或者异常等能使程序终止的语句,那么就先执行finally中的代码,然后再进行返回;
- 但是如果在finally块中又遇到了return或者异常等能使程序终止的语句,那么这个方法就结束了,catch中的return就无法真正被返回。
- 如果finally中仅仅处理了一个释放资源等操作的话,那么程序会返回去执行catch中的返回代码。