私は私の.NETコードを投げることができ、いくつかの未チェックの例外を処理していない場合、どのように私は知っているだろうか?

StackOverflow https://stackoverflow.com/questions/2205318

質問

私は私のコードによってスローされる可能性がいくつかの例外を処理見逃している場合は、

.NETでは、メソッドのシグネチャは、私に教えていません。 私はハッシュテーブル削除を使用していますが、例外ArgumentNullExceptionを扱っていないと言うならば、私に警告することができますいくつかのツールはありますか?私は、実行時に驚かれることしたくない。

そして、これはあなたがそうでなければ未チェックの例外を除いて、操作しにくくすることができ、非常によくあなたのコードを知っておく必要があることを意味するのでしょうか。

役に立ちましたか?

解決

実際には、プログラムを終了することによって、予期しない例外を処理すると、予期しない何かが起こるとき、一般的には、プログラムの状態が定義されていない、いるので、このような状況に対処するための最良の方法です。あなたはすべての例外をログに記録し、受け入れテストのまともなセットを持っている場合は、プログラムの流れに起因する予期しない例外から来る問題を解消することができます。

防御方法の入力をチェックすることにより、プログラミング、クラスのユニットテストとあなたのフレームワークを理解するには、ほとんど例外が期待ようになります。

他のヒント

Windowsアプリケーションのます:

AppDomain currentDomain = default(AppDomain);
currentDomain = AppDomain.CurrentDomain;
// Handler for unhandled exceptions.
currentDomain.UnhandledException += UnhandledExceptionHandler;
// Handler for exceptions in threads behind forms.
Application.ThreadException += ThreadExceptionHandler;

public static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
}

public static void ThreadExceptionHandler(object sender, Threading.ThreadExceptionEventArgs e)
{
}

あなたが達成しようとしている何のための言語サポートはありません。私たちは、APIのためのすべてのエントリポイントがログにキャッチしてみていたことを確認するためにVSに税関アドインを書きました。しかし、私はあなたがまだエラーと意味のある何かをするいくつかのコードを記述する必要があるため、すべての可能な宣言例外ケースをカバーするためにあなたを強制的に言語の値を見たことがありません。ほとんどの人はちょうどハンドラを記述し、いくつかの役に立たないコードで有用でエラー何ができるか隠しについてコンパイラが文句を言っているものを見てください。いくつかのケースでは、その優れた失敗すると問題がある知っています。

あなたはすべての可能なユースケースをテストするアプリケーションおよび書き込みユニット、アプリの機能と統合テストのための最上位レベルの例外ハンドラを追加する必要があります。これは、ほとんどすべての未チェックの例外を排除するのに役立ちます。

また、例外をキャッチしないようにしようが、その理由を排除します。 (すなわちArgumentNullExceptionをキャッチしていないが、

nullを渡すことはありません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top