try-catch-finally

很多帖子告訴我try-catch太丑了 不要寫 要少寫! 但是不得不承認Java離不開try-catch
明確一下觀點:

1.對于錯誤進行異常處理是不負責任的(所謂錯誤即本不該發(fā)生,程序員卻讓它發(fā)生了 一般指:傳入空指針,數(shù)組越界,除數(shù)為零),這個時候用斷言或者什么也不做比較好。因為處理了之后問題依然存在,所以保證代碼正確性是解決這個問題的關(guān)鍵。
2.盡量明確異常類別,不要一個Exception全部包括。

性能分析:
'''
public class testOne {
@Test
public void test1() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("0");
list.add("4");//省略很多測試數(shù)據(jù)
try {
for (String i: list) {
int num = Integer.parseInt(i);
num = 12 / num;
System.out.println(num);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void test2() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("0");
list.add("4");//省略很多測試數(shù)據(jù)
for (String i: list) {
try {
int num = Integer.parseInt(i);
num = 12/num;
System.out.println(num);
} catch (Exception e) {
e.printStackTrace();
}
}
}
'''
結(jié)果:
test1:

java.lang.ArithmeticException: / by zero
at TryCatch.testOne.test1(testOne.java:24)
12-----
6-----

test2:

java.lang.ArithmeticException: / by zero
at TryCatch.testOne.test2(testOne.java:46)
12-----
6-----
3-----
效率:
不catch時:耗時是一樣的
出現(xiàn)異常時:根據(jù)需要的數(shù)據(jù)結(jié)果進行選擇
建議:盡量少在try中聲明變量,較少的代碼放置到try中 效率會更高

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容