[.NET] 例外を Throw しなおすときは、 例外を付けてはいけない ( その1 )
わかりにくいというか、 意味不明なタイトルですいません f(^^;
MSDN に載っている FxCop の "Rethrow to preserve stack details ( CheckId : CA2200 )"
( 「スタックの詳細を保存するために再スローします」 ) というルールには、 こう↓書かれています。
throw ステートメントで例外を指定して例外が再スローされると、 スタックトレースは現在のメソッドで再開され、 例外をスローした元のメソッドと現在のメソッドの間で呼び出されたメソッドの一覧は失われます。 例外と共に元のスタック トレース情報を保存するには、 例外を指定しないで throw ステートメントを使用します。
これもなかなか分かりにくいでしょう。
結論から言うと、 次のようにせい、 ってことです。
( ○ 良い )Catch ex As NullRefferenceException … Throw |
( × 悪い )Catch ex As NullRefferenceException … Throw ex |
# 実際にどう違いが出るのか… は、 その2 へ続く… f(^^;
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント