当前页面: 开发资料首页 → JSP 专题 → 总是提示:finally块未正常完成,何解?
总是提示:finally块未正常完成,何解?
摘要: 总是提示:finally块未正常完成,何解?
包中的一段代码如下,eclipse+myeclipse环境下,总是提示:finally块未正常完成,何解?
public int getints(int para){
try{
return 123;
}catch(Exception e){
e.printStackTrace();
}finally{
return 0;
}
}
报warning原因是,不应该在finally中return
你可以测试一下,无论出错与否,最后getints返回的永远是0
加入碰到类似代码,比较常用的做法是类似
try{
return 123;
}catch(Exception e){
e.printStackTrace();
}finally{
}
return 0;
}
如果在return 123之前出错,则进入catch和finally,并最终跳出try-catch-finally,返回0
如果try内没有错,则进入finally并返回123
这是eclipse3后的一个特点,就是认为在finally块中不应该存在return语句。
只是一个警告。
你可以在Window->Preferences->Java->Compiler->Errors/Warnings->
Potential programming problems中找到'finally' does not complete normally然后把它的警告级别改为Ignore就可以了。
原来这样啊,学习啊,楼上的怎么信誉只有5啊,强
学到了东西 HOHO!
那么在 finally 中存在 return 是否正确的呢?
正确但是不推荐,因为try{ }里面正常return的语句就无法执行了
mark
不应该有return