« ARIA The ORIGINATION 第11話 | トップページ | [.NET] 例外を Throw しなおすときは、 例外を付けてはいけない ( その2 ) »

2008年3月20日 (木)

[.NET] 例外を Throw しなおすときは、 例外を付けてはいけない ( その1 )

わかりにくいというか、 意味不明なタイトルですいません f(^^;
MSDN に載っている FxCop の "Rethrow to preserve stack details ( CheckId : CA2200 )" ( 「スタックの詳細を保存するために再スローします」 ) というルールには、 こう↓書かれています。

throw ステートメントで例外を指定して例外が再スローされると、 スタックトレースは現在のメソッドで再開され、 例外をスローした元のメソッドと現在のメソッドの間で呼び出されたメソッドの一覧は失われます。 例外と共に元のスタック トレース情報を保存するには、 例外を指定しないで throw ステートメントを使用します。

これもなかなか分かりにくいでしょう。

結論から言うと、 次のようにせい、 ってことです。

( ○ 良い )
Catch ex As NullRefferenceException
    ' …例外処理

    Throw
End Try
( × 悪い )
Catch ex As NullRefferenceException
    ‘ …例外処理

    Throw ex
End Try

# 実際にどう違いが出るのか… は、  その2 へ続く… f(^^;

|

« ARIA The ORIGINATION 第11話 | トップページ | [.NET] 例外を Throw しなおすときは、 例外を付けてはいけない ( その2 ) »

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/40576994

この記事へのトラックバック一覧です: [.NET] 例外を Throw しなおすときは、 例外を付けてはいけない ( その1 ):

« ARIA The ORIGINATION 第11話 | トップページ | [.NET] 例外を Throw しなおすときは、 例外を付けてはいけない ( その2 ) »