複数の例外を簡単に処理します
例外処理における従来の慣例では、一般的な 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 中国語 Web サイトの他の関連記事を参照してください。