.NETクラスのメソッドで例外が発生した場合、そのメソッド自体が内部的に他のメソッドを呼び出していますが、そのうちの1つの内部でエラーが発生します。これは、必要以上に「無意味」なものを持つ膨大で面倒なスタックトレースを作成します。エラーを引き起こしたパブリック.NETメソッドで停止するスタックトレースを取得する方法はありますか?それは.NETメソッドのすべての内部構造を表示することですか?内部メソッドを除いた.NETスタックトレースを生成できますか?
この例は、ADO.NETのExecuteNonQuery()です。内部的には5-6の関数のように呼び出され、その6番目のネストされた関数まで例外が発生することはないので、スタックトレースは私たちが何もやっていないか気にしているすべての内部を示します。 ExecuteNonQuery()で停止していれば、それは公共の面を向いている.NETメソッドなので、すっきりとしているでしょう。
実用的な理由はありますか?あなたは捕まえて再投げられることができますが、なぜですか? – Sinatr
内部メソッド名が無意味ですか?例えば。 'ExecuteNonQuery'が' NullReferenceException'をスローすると、どこから探し始めますか?内部メソッド名に 'Parameter'という単語が含まれている場合、それはあなたが探している場所をより迅速に拡大するのに役立ちませんか? –
カスタム例外クラスを作成し、スタックトレースに不要なものを除外することができます。 – PaulF