同時捕捉多個異常的最佳實踐
在C#中,直接使用System.Exception
捕捉所有異常通常不被建議。最佳實踐是只捕獲已知的特定異常。然而,當處理多個預期異常時,這種方法可能會導致程式碼冗餘。
例如:
<code class="language-csharp">try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; }</code>
上述程式碼存在重複結構。更簡潔的方法是使用System.Exception
捕捉所有異常,然後利用switch
語句區分異常類型:
<code class="language-csharp">catch (Exception ex) { switch (ex) { case FormatException: case OverflowException: WebId = Guid.Empty; break; default: throw; // 将未处理的异常重新抛出 } }</code>
這種方法能夠有效率地處理多個已知異常,同時保留拋出未預期異常的能力。
請記住,捕獲System.Exception
作為常規做法仍然不被推薦。僅捕獲並適當地處理預期異常。
以上是如何有效率地處理 C# 中的多個預期異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!