我最近遇到了一個由程序員編寫的代碼,他在catch中有一個try catch語句!異常處理try catch catch catch
請原諒我不能粘貼實際的代碼,但他的所作所爲是類似的東西這個
try
{
//ABC Operation
}
catch (ArgumentException ae)
{
try
{
//XYZ Operation
}
catch (IndexOutOfRangeException ioe)
{
//Something
}
}
我個人覺得這是我所見過的最窮的代碼之一! 在1到10的範圍內......你覺得我應該多快,並給他一個我的想法? 還是我過度反應?
編輯: 他實際上在做什麼是在捕捉,他正在執行一些其他操作,可以/應該在初次嘗試失敗時完成。我的問題是有一個乾淨的代碼和可維護性。將第一個catch的異常委託給不同的函數或調用函數是可以的,但是添加更多的代碼可能會或可能不會將異常拋入第一個catch,這是我感覺不好的。我儘量避免多個堆疊的「if-loop」語句,我發現這同樣很糟糕。
- IvarD
這是很常見的,所以沒有看到代碼實際上做了什麼 - 這沒有什麼本質上的錯誤。 – nos 2010-08-19 21:05:09
我寧願問他他試圖達到什麼目的。 – 2010-08-19 21:12:46