本帖最后由 吴健 于 2012-12-8 20:13 编辑
java异常处理机制不论有无异常出现finally中的代码块总会执行,即如果程序中出现异常会执行catch后的代码块,然后执行finally中的代码,如果程序中无异常产生,则直接执行
finally中的代码。
(1)不管有无异常产生,finally都会执行
(2)当try、catch语句中有return时,finally仍会执行。
(3)如果finally语句中含有return时,try,catch中的返回值将获取不到
public static String test(){
String str = null;
List list = new ArrayList();
try{
list.get(9);
return "try";
}catch(Exception e){
return "catch";
}finally{
return "finally"; //该方法最终返回的是finally中的字符串
}
}
当然finally一般用来释放占用的资源,不宜包含return语句,会使程序提前退出
(4)如果出现异常的话则会提前退出执行finally语句后在执行catch中的return,然后退出程序
public static String test(){
String str = null;
List list = new ArrayList();
try{
list.get(9);
return "try";
}catch(Exception e){
return "catch"; //退出程序
}finally{
}
}
|