2010-12-05 31 views
3

私はVS2010で.NET 4.0を使用しています。 (私が書かれていない)私の現在のアプリケーションでは、私は.NET例外が発生しました。

Try 
    ' do something ' 
Catch e As Exception 
    ' do nothing about the exception. no logging and no re-throw... =o=!!! ' 
End Try 

のようないくつかの多くのコードがあることがわかった私の質問は、アプリケーション全体では「食べられる」例外のこの種を見つける方法です。

ありがとうございます!

編集:私はCatchブロックは常に空でないことを述べる必要があることを申し訳ありません。時にはそれが関与アセンブリ上Return FalseReturn NothingReturnReturn 0Return "" ...

+0

に[すべての空のcatchブロックを探すのC#]の可能な複製を使用して構築された生産段階中に例外を食べるのdllに対処しなければならなかったと私たちは例外キャッチャーツールを使用しています/ 1486424/c-find-all-empty-catch-blocks) –

+0

私はそれらが重複しているとは思わない。例外はキャッチブロックが空であることを意味するものではありません。 「Return False」、「Return Nothing」、または「Return」でメソッドを終了することもあります。 –

答えて

4

実行FxCopである可能性があります。違反はrule CA1031です。

また、あなたのソースコードに、この正規表現を使用することができます。

catch:b*\([^)]*\):b*\{:b*\} 
+0

正規表現はC#コードでのみ使用できますが、VB.NETコードでは使用できません。 – ChrisF

1

使用ReSharperの(それの試験が利用可能であるべきです)。

それはあなたが宣言したが、あなたの例外を処理していない場所について警告を表示します。 Visual Studioから

http://www.jetbrains.com/resharper/

+0

私はReSharperがVB.NETコードで動作するとは思わない。 – ChrisF

+0

本当ですか!その後、それは動作しません。しかし、実際には、2週間前の会議(実際には、resharperチームのメンバー)から、バージョン6で追加した(または追加した)ことになっていました。 –

1

、「デバッグ」>「例外」に行き、その後、「共通言語ランタイム例外」の下に「スローされます」チェックボックスをクリックしてください。これで、デバッガをアプリケーションに接続すると、デバッガが捕捉されてもすべての例外に対してデバッガが停止します。

+0

そして、すべての例外発生条件をシミュレートしていますか?通常の状況下でアプリケーションが例外をスローしない場合、このメソッドは何も発生しません。 –

0

@RoadWarrierが指摘したように、あなたがコンパイルされたコードの解析を行いFxCopのを使用することができます。 FxCopと同様に、ソースコードの静的コード分析を行うStyleCopを使用することができます。 resharperをお持ちの場合は、Resharper add for StyleCopを使用して、コード行を入力する際に​​リアルタイムのコード解析を行うことができます。あなたが食べた例外を見つけることができるアプリケーションのソースを得たことを

0

良いです。 (http://stackoverflow.com/questions:私たちは、MDbgCore.dll

関連する問題