2017-05-25 12 views

答えて

5

短い旅行にまで泡立てる前に、いくつかの追加の情報を追加していると捕まるありませんException.GetBaseException Methodのドキュメントはすべてをクリアします:

例外のチェーンは、チェーン内の各例外は、そのInnerExceptionプロパティで参照例外の直接の結果としてスローされたような例外のセットで構成されます。特定のチェーンでは、チェーン内の他のすべての例外の根本的な原因となる例外が1つだけあります。この例外は基本例外と呼ばれ、そのInnerExceptionプロパティは常にnull参照を含みます。

そのため、元のException「ベース例外」で、スローExceptionInnerExceptionとして元Exceptionを設定します。

チェーン内に最新のExceptionを表示する場合は、GetBaseExceptionに電話しないでください。

+0

FUUUUをここで

var ex = Server.GetLastError(); var inner = ex.InnerException; 

GetBaseExceptionが何をするかを確認する簡単なテストです。 GetBaseException問題でした。私はそれを追加したことを忘れて、デバッガのオブジェクトグラフを通り過ぎて何回も直ぐにそれを見たのです。迅速な対応とお手伝いをしてくれてありがとう! – user3953989

1

GetBaseExceptionに電話する必要はありません。これは元の例外を与えるためです。ただ、この操作を行います。

var ex = new Exception("1st"); 
var ex2 = new Exception("2nd", ex); 
var ex3 = new Exception("3rd", ex2); 

var exFinal = ex3.GetBaseException(); 

Console.WriteLine(exFinal.Message); 

出力:1st

関連する問題