輕鬆處理多重異常
異常處理的常規做法通常建議避免捕獲通用的System.Exception錯誤。相反,建議只處理應用程式「已知」的特定異常。但是,這種方法有時會導致程式碼重複。
考慮以下場景:
<code class="language-csharp">try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; }</code>
為了避免這種重複,一個更優雅的解決方案是用單一catch區塊捕捉這兩個異常:
<code class="language-csharp">catch (Exception ex) { if (ex is FormatException || ex is OverflowException) { WebId = Guid.Empty; } else throw; }</code>
這段程式碼使用if語句來辨識需要處理的特定異常。這種方法的優點是可以一次捕獲多個異常,同時仍允許意外異常向上傳播到堆疊中。當一個物件被多次修改並且需要在其中一個操作失敗時重置時,這尤其有用。
以上是如何有效率地處理C#中的多個特定異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!