2009-03-06 6 views
2

がありませんが、私が取得しています何ですか?ここで、私は、スタックトレースからいくつかの情報が欠けているように見えるのStackTrace情報

EDIT:のWeb.Configで

カスタムエラーがオフに設定されている、私はそれは次のようにキャッチされるエラーを処理しています:

Catch ex As Exception 
    Respose.Write(ex.StackTrace) 
End Try 

ザ・スタックトレースは、まだ切り捨てられてきています。

答えて

6

フレンドリエラーを無効にするには、web.configでcustomErrorsが "RemoteOnly"または "Off"に設定されていることを確認してください。

スタックトレースがリセットされる可能性がありますか? (この場合でもまだ何かが表示されるはずですが)

スタックトレースをリセットします。

catch(Exception ex) 
{ 
    throw ex; 
} 

スタックトレースをリセットしません。

catch(Exception ex) 
{ 
    throw; 
} 

EDIT:

ex.StackTraceは、現在のスタックを取得します。スタックトレースは、例外がスローされた(エラーが発生した) を開始し、例外がキャッチされた現在のスタックフレームで終了します。したがって、コールスタックを逆転しています。あなたが起こったらすぐにstacktraceを書いているので、それ以上コールスタックを上回る機会はありません。

何をしているかによって、いくつか試してみることができます。

//To just see the stackTrace 
Catch ex As Exception 
    Throw 
End Try 

Environment.StackTrace - 現在のスタックトレース情報これらのメソッドの

//If you are trying to log the stacktrace 
Catch ex As Exception 
    Respose.Write(Environment.StackTrace) 
    Respose.Write(ex.StackTrace) 
End Try 

//If is hiding then try - hiding as in throw ex vs just throw 
Catch ex As Exception 
    //careful innerException can be null 
    //so need to check before using it 
    Respose.Write(ex.InnerException) 
End Try 

一つはあなたのために働く必要があります取得します。

+0

返信いただきありがとうございます。詳細については、私の編集をご覧ください。あなたが私に与えることができるどんな助けも大歓迎です。 –

関連する問題