1. ホーム
  2. c#

[解決済み】.NETの例外をキャッチして再スローするためのベストプラクティス

2022-03-31 09:43:04

質問

例外をキャッチして再スローする際に考慮すべきベストプラクティスは何ですか?私は Exception オブジェクトの InnerException とスタックトレースは保存されます。次のコードブロックの間で、これを処理する方法に違いはありますか?

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

Vs:

try
{
    //some code
}
catch
{
    throw;
}

解決方法は?

スタックトレースを保存する方法としては throw; これも有効です

try {
  // something that bombs here
} catch (Exception ex)
{
    throw;
}

throw ex; は基本的にその時点から例外を投げるようなものなので、スタックトレースは throw ex; ステートメントを使用します。

マイク も正しいです。ただし、例外を渡すことができると仮定します(これは推奨されています)。

カール・セガン があります。 例外処理に関する素晴らしい記事 の中で プログラミングの基礎 e-book も、読み応えがあります。

Edit: 作業用リンク プログラミングの基礎 のPDFをご覧ください。本文中で "exception"を検索してください。