.net 基本クラス ライブラリで見つかるパターンは、ThrowHelper のパターンです。本質的に、メソッドごとのバイトコードの量を削減します。
とにかく、throwヘルパーで発生したエラーがヘルパー内で停止するのを止める属性ディレクティブがあるかどうか疑問に思っていました。デバッガーが呼び出し行で停止することをお勧めします。
すなわち
ThrowHelper.ThrowAnException ()
ThrowAnException() 内ではなく
次の属性を使用して、throwingメソッドをマークすることもできます。
class ThrowHelper
{
[DebuggerStepThrough]
public static void Throw()
{
throw new InvalidOperationException();
}
}
その場合、デバッガーはこのメソッドに入りません。
ヘルパー メソッドが実際に例外をスローするのではなく、例外を作成することができます。スタック トレースは、ThrowHelper ではなく、実際のメソッドの throw ステートメントを指します。
throw ThrowHelper.CreateAnException();