2010-03-29 43 views
0

只是一個普遍的問題, 你總是要處理錯誤嗎?錯誤處理與try catch(AGAIN)

我只是與我的同事之一進行了辯論,在他的代碼中我看到很多地方東西都圍繞着try語句,catch語句中什麼都沒有。

我一直認爲不處理錯誤或將其從用戶隱藏起來是不好的做法(除了將它們記錄在日誌文件中)。

只想知道別人認爲什麼

謝謝。

回答

2

如果你不能處理異常,那麼不要接收它。可能有人在呼叫堆棧後面可以正確處理它,恭喜你,現在已阻止他們完成他們的工作< golfclap/>。

1

捕捉異常然後「消除它」的做法是EVIL!我認爲99.99%的所有企業都會就此達成一致。

下面是有關異常處理最佳實踐的nice article from CodeProject。猜猜這些部分是專門用來做什麼的?

你可以做的最糟糕的事情是catch(Exception)並在其上放置一個空的代碼塊。永遠不要這樣做。

任何異常處理文章值得它的鹽將提到吞嚥的異常概念,而不是在某種程度上這樣做。

0

只有西斯成交的絕對值。儘管如此,我認爲至少有一個例子是我們最近碰到的,最好只是放棄它並繼續前進。我們最近實施了一個內部點擊跟蹤解決方案,向MVC控制器發送異步AJAX請求以進行日誌記錄。我們不在乎它是否沒有被記錄,我們也不希望我們自己的日誌填滿我們不想要的錯誤日誌。那麼爲什麼還要在catch塊中做任何事情的開銷。當我們遇到錯誤時,我們考慮在catch塊中添加代碼以至少增加計數器,但目前沒有商業原因。

這真的歸結爲你是否因懶惰而做這件事,或者是因爲實際上有一個不該做的理由。

我可能會說因爲這是一般的不好的做法。我有勇氣獲得積分嗎?

0

你必須處理異常,如果有東西,你可以用它做


try 
{ 
    //CODE 
} 
catch 
{ 
    LogException(); 
    //and/or 
    RollbackTransaction(); 
    //and/or 
    ShowFriendlyMessageToUser(); 
    //and/or 
    DoSomethingUsefullWithTheException(); 
    throw; //This is optional 
} 

這是沒有意義的,但我已經看到了很多


try 
{ 
    //CODE 
} 
catch 
{ 
    throw; 
} 

編輯1 你需要一個非常好的參數來放置這樣的東西。也許你會被解僱:-p


try 
{ 
    //CODE 
} 
catch 
{ 
    //HIDE TO THE WORLD THAT THIS IS FAILING 
} 
相關問題