Java Eclipse建议的警告修复程序;“最后一个块不能正常完成”;
我知道返回finally块会导致不希望的结果,比如未捕获的异常丢失。但我在这里试图理解的是Eclipse对警告“finally block not complete normaly”(最终块不能正常完成)的建议修复 考虑以下代码片段:Java Eclipse建议的警告修复程序;“最后一个块不能正常完成”;,java,eclipse,exception,return,try-catch-finally,Java,Eclipse,Exception,Return,Try Catch Finally,我知道返回finally块会导致不希望的结果,比如未捕获的异常丢失。但我在这里试图理解的是Eclipse对警告“finally block not complete normaly”(最终块不能正常完成)的建议修复 考虑以下代码片段: catch (SQLException se) { System.out.println("Exception occured in the database"); System.out.pri
catch (SQLException se)
{
System.out.println("Exception occured in the database");
System.out.println("Exception message: "+ se.getMessage());
System.out.println("Database error code: "+ se.getErrorCode());
se.printStackTrace();
}
finally
{
// Clean up
if(callStmt != null)
{
try
{
callStmt.close();
}
catch (SQLException se2)
{
se2.printStackTrace();
}
}
if(conn != null)
{
try
{
conn.close();
}
catch (SQLException se2)
{
se2.printStackTrace();
}
}
return newEmpSalary;
}
}
对于上述代码,Eclipse Luna给出警告“最终块无法正常完成”,建议的修复方法是:
应用上面的修复程序仍然不能消除警告。我知道我只需要删除return语句来消除它
但我很想知道为什么Eclipse会在这种情况下建议修复
“在可能的情况下将修饰符更改为final”
。Eclipse不能总是找到解决错误的方法,所以它会建议其他可能有帮助或导致不同错误的事情,它知道如何修复
移动
返回新员工薪资代码>出finally块应该会删除错误。不知道为什么会这样说。。。显而易见的解决方案是将return语句从finally块中移出。