Java Eclipse建议的警告修复程序;“最后一个块不能正常完成”;

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

我知道返回finally块会导致不希望的结果,比如未捕获的异常丢失。但我在这里试图理解的是Eclipse对警告“finally block not complete normaly”(最终块不能正常完成)的建议修复

考虑以下代码片段:

    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块中移出。