0

私がこれを行う場合:

try 
{
    //code
}
catch (Exception)
{
    throw;
}

例外はそのすべての情報とともに発生しますか?アイデアは、アプリの上部でエラーを処理することです。そこで、SQL spを実行して管理者のテーブルを埋め、例外を認識できるようにします。

Exception.Message例外のソース(メソッド、関数など)を保存したいと思います。しかし、例外が発生した「場所」を参照する方法がわかりません。それException.Sourceですか?Exception.TargetSite

ありがとう。

4

2 に答える 2

1

簡単な答えは「はい」です。throwを呼び出すだけで、例外に関するすべてが渡されます。

  • throw exは、スタックトレースをリセットします(したがって、エラーはHandleExceptionに起因するように見えます)
  • スローはしません-元の違反者は保持されます。

(Mark Gravellから引用)

于 2012-07-17T11:58:49.190 に答える
1

例外のタイプは、それがどの種類の例外であるか (IndexOutOfRangeException、SqlException など) を示し、それに応じて対応します。

try 
{
    //code
}
catch (SqlException ex)
{
    // Handle code
}
catch (IndexOutOfRangeException ex)
{
    // Handle code
}
catch (Exception ex)
{
    // Handle code
}

try catchそれがどこで起こっているかについては...例外が発生しやすい領域を大きなコードチャンクで囲む必要はありません。このようにして、例外がどこから派生したかを知ることができます。

于 2012-07-17T11:57:12.603 に答える