我試過在其他線程上尋找這個答案,但到目前爲止,我只看到線程狀態,捕獲Throwable是壞的。我的問題是,是否有一個原因,你會想要做到這一點,然後在catch塊中什麼也不做,除了打印堆棧跟蹤?爲什麼你會捕獲Throwable並且什麼也不做,但是打印堆棧跟蹤?
我最近被帶到一個項目中,並完成了清理RESTful服務的現有類錯誤處理的任務。一些輔助服務類有try/catch塊,只有趕上了Throwable並將其打印出堆棧跟蹤,如下所示:
class MainService {
SubService1 s1;
SubService2 s2;
public doMainService() {
}
}
class SubService1 {
public int findSomething() {
try {
// Do Something
} catch (Throwable t) {
t.printStackTrace();
}
}
}
class SubService2 {
public int findSomethingElse() {
try {
// Do Something
} catch (Throwable t) {
t.printStackTrace();
}
}
}
是否存在,這是可以接受的情況下?方法拋出異常並且沒有try/catch塊會更好嗎?
沒有ESP和直接鏈接到寫這個人的人...沒有人回答這個問題。大多數*可能*回答?糟糕或懶惰的程序員。其他可能性?未完成/匆忙的代碼從未退出調試階段。 – 2012-02-29 01:11:33
這是一個有效的問題,特別是對於新手到Java的人。他/她問我們這些Java專家,如果這是有充分理由的話。 – 2012-02-29 01:17:47
對不起,我想我應該更好地問這個問題,因爲不可能知道以前的程序員在想什麼。代碼運行良好,並且在代碼中有ExceptionMappers將異常映射到HTTP狀態代碼,這使得我更加困惑。 – punkconvoy 2012-02-29 01:17:54