只是一個普遍的問題, 你總是要處理錯誤嗎?錯誤處理與try catch(AGAIN)
我只是與我的同事之一進行了辯論,在他的代碼中我看到很多地方東西都圍繞着try語句,catch語句中什麼都沒有。
我一直認爲不處理錯誤或將其從用戶隱藏起來是不好的做法(除了將它們記錄在日誌文件中)。
只想知道別人認爲什麼
謝謝。
只是一個普遍的問題, 你總是要處理錯誤嗎?錯誤處理與try catch(AGAIN)
我只是與我的同事之一進行了辯論,在他的代碼中我看到很多地方東西都圍繞着try語句,catch語句中什麼都沒有。
我一直認爲不處理錯誤或將其從用戶隱藏起來是不好的做法(除了將它們記錄在日誌文件中)。
只想知道別人認爲什麼
謝謝。
如果你不能處理異常,那麼不要接收它。可能有人在呼叫堆棧後面可以正確處理它,恭喜你,現在已阻止他們完成他們的工作< golfclap/>。
捕捉異常然後「消除它」的做法是EVIL!我認爲99.99%的所有企業都會就此達成一致。
下面是有關異常處理最佳實踐的nice article from CodeProject。猜猜這些部分是專門用來做什麼的?
你可以做的最糟糕的事情是catch(Exception)並在其上放置一個空的代碼塊。永遠不要這樣做。
任何異常處理文章值得它的鹽將提到吞嚥的異常概念,而不是在某種程度上這樣做。
只有西斯成交的絕對值。儘管如此,我認爲至少有一個例子是我們最近碰到的,最好只是放棄它並繼續前進。我們最近實施了一個內部點擊跟蹤解決方案,向MVC控制器發送異步AJAX請求以進行日誌記錄。我們不在乎它是否沒有被記錄,我們也不希望我們自己的日誌填滿我們不想要的錯誤日誌。那麼爲什麼還要在catch塊中做任何事情的開銷。當我們遇到錯誤時,我們考慮在catch塊中添加代碼以至少增加計數器,但目前沒有商業原因。
這真的歸結爲你是否因懶惰而做這件事,或者是因爲實際上有一個不該做的理由。
我可能會說因爲這是一般的不好的做法。我有勇氣獲得積分嗎?
你必須處理異常,如果有東西,你可以用它做
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
}