最近我在看tomcat服務器的頻繁掛起,並且遇到了一些部分代碼中頻繁拋出的異常。
引發異常並從最終返回 - Tomcat掛起
當我檢查了代碼,這是什麼樣子
public static String doSomething() {
String returnVakue = "default value";
try {
ResultSet rs = getMyResultSet();
rs.first();
returnValue = rs.getString("my_field"); // Note that Exception happens at times when the ResultSet is empty
} catch (Exception e) {
throw new Exception(e);
} finally {
return returnValue;
}
}
雖然我知道,這是完全可以擁有兩個拋出異常和返回,不知道這會造成什麼樣的泄漏在tomcat。性能是否存在潛在風險? ?不過,我的呼叫者函數在這一點上停止執行。對此有何看法?它會影響GC嗎?
編輯:注意:我知道如何更正此代碼。請分享您的觀點是否可能導致tomcat掛起。
其他信息:Tomcat啓動時表現緩慢這種情況下 – Akhil
的多個實例後,「雖然我知道,這是完全可以擁有兩個拋出異常,退」 - 這是沒有意義的。如果拋出異常,調用方法永遠不會看到它,因爲它將進入異常處理模式,並且不會使用返回的值。強烈建議您從該代碼中移除finally塊並查看您的問題是否消失。 – StormeHawke
感謝您的評論。但我的意思是,Syntactically Java支持。我非常清楚,這是無意義的編程。我會糾正它。但是我的問題是,這是否會導致tomcat在一段時間後掛起。 – Akhil