2011-09-01 7 views
7

H 私たちはかなり頻繁に呼び出すログユーティリティー機能を持っていますが、Server.GetLastError()への呼び出しを追加してログに記録するエラーがある場合は、 ログ機能は別のプロジェクトの一部ですので、私はHttpContext.Current.Server.GetLastError()を使用しようとしました(私はRequest、ServerVariablesおよびSessionプロパティのために行います)。 「HttpContext.Current.Server.GetLastError()は、」Tools.CooLog("out");が呼び出された例外を返しますかどうかを調べるために

int i=0, j=0; 
try 
{ 
    int k = i/j; 
} 
catch (Exception E) 
{ 
    Tools.CooLog("in"); 
} 
Tools.CooLog("out"); 

:私は、単純な例外を作成したテスト中 。

代わりに大きな驚きが2つありました 1.両方の電話で、HttpContext.Current.Server.GetLastError()がnullを返しました。 2.おそらく最も奇妙なのは、ローカル部門のCooLogの最初の呼び出しで、若い、ハンサムな、PHPバージョンのビットを見たことです。$例外と呼ばれる値があり、驚くことに、HttpContext.Current.Server.GetLastError()が失敗したことがわかりました検索する!

$exception is defined and HttpContext.Current.Server.GetLastError() fails

HttpContext.Current.Server.GetLastError()がnullを返すのはなぜ?だから私の質問は 1ですか。 (HttpContext.Current.Request.ServerVariablesはうまく動作します) 2.その$例外はどこから来ますか?それを使用する方法はありますか? (CooLogへの2回目の呼び出しで変数が定義されていません)

答えて

6

これは特別なデバッガ変数です。コードでアクセスすることはできません。

あなたは例外がされているいずれかのことである、ウォッチウィンドウに表示されない理由:

または

  • Application.Errorイベントを処理し

    • まだ解雇されていない。
+0

偉大な有益な答え:)ありがとう – SimSimY

3

$exceptionは、デバッガがプログラムの実行を一時停止した理由の例外です。これは、あなたのケースであるcatchブロックでアクセスできる例外と同じです。E

関連する問題