次の方法で共有


標準例外の種類の使用

このコンテンツは、 フレームワーク設計ガイドライン (再利用可能な .NET ライブラリの規則、イディオム、パターン、第 2 版) から、Pearson Education, Inc. のアクセス許可によって再印刷されます。 そのエディションは2008年に出版され、その後 、本は第3版で完全に改訂されています。 このページの情報の一部が古くなっている可能性があります。

このセクションでは、フレームワークによって提供される標準的な例外とその使用方法の詳細について説明します。 リストは決して網羅的ではありません。 その他の Framework 例外の種類の使用方法については、.NET Framework リファレンス ドキュメントを参照してください。

例外と SystemException

System.ExceptionSystem.SystemExceptionを投げないでください。

❌ 再スローする予定がない限り、フレームワーク コードで System.ExceptionSystem.SystemException をキャッチしないでください。

❌ 最上位の例外ハンドラーを除き、 System.Exception または System.SystemExceptionをキャッチしないようにします。

ApplicationException

ApplicationException をスローしたり、そこから派生させたりしないでください。

無効な操作例外 (InvalidOperationException)

✔️ オブジェクトが不適切な状態にある場合は、InvalidOperationException をスローしてください。

ArgumentException、ArgumentNullException、ArgumentOutOfRangeException

✔️ 無効な引数がメンバーに渡された場合は、ArgumentException またはそのサブタイプの 1 つをスローしてください。 該当する場合は、最も派生した例外の種類を優先します。

✔️ 必ずParamNameのいずれかのサブクラスをスローするときに、ArgumentExceptionプロパティを設定してください。

このプロパティは、例外がスローされる原因となったパラメーターの名前を表します。 このプロパティは、コンストラクターのオーバーロードのいずれかを使用して設定できることに注意してください。

✔️ プロパティ セッターの暗黙的な値パラメーターの名前には、 value を使用してください。

NullReferenceException、IndexOutOfRangeException、AccessViolationException

❌ パブリックに呼び出し可能な API が NullReferenceExceptionAccessViolationException、または IndexOutOfRangeExceptionを明示的または暗黙的にスローすることを許可しないでください。 これらの例外は、実行エンジンによって予約およびスローされるもので、ほとんどの場合にバグを示します。

これらの例外をスローしないように引数をチェックしてください。 これらの例外をスローすると、時間の経過と共に変化する可能性のあるメソッドの実装の詳細が公開されます。

StackOverflowException

StackOverflowException を明示的にスローしないでください。 例外は、CLR によってのみ明示的にスローされる必要があります。

StackOverflowExceptionをキャッチしないでください。

任意のスタック オーバーフローが発生しても一貫性を保つマネージド コードを記述することはほとんど不可能です。 CLR のアンマネージ部分は、任意のスタック オーバーフローからバックアウトするのではなく、プローブを使用してスタック オーバーフローを適切に定義された場所に移動することで一貫性を保ちます。

OutOfMemoryException (メモリ不足例外)

OutOfMemoryException を明示的にスローしないでください。 この例外はCLRインフラストラクチャによってのみ発生させられます。

ComException、SEHException、ExecutionEngineException

COMExceptionExecutionEngineExceptionSEHException を明示的にスローしないでください。 これらの例外は、CLR インフラストラクチャによってのみスローされます。

Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

フレームワーク設計ガイドライン:再利用可能な .NET ライブラリの規則、イディオム、パターン、Krzysztof Cwalina および Brad Abrams による第 2 版は、2008 年 10 月 22 日に Microsoft Windows 開発シリーズの一部として Addison-Wesley Professional によって公開されました。

こちらも参照ください