4

C# で非常にイライラすることの 1 つは、何らかの問題を見つけて意味のある例外をスローしたい場合です。これらの例外をインテリセンスで見つけるのは非常に難しいと思います。Exception 名前空間がないため、例外を探し回らずに Intellisense を介してすべての例外を一覧表示することはできません。

独自の例外を作成するつもりはありません。例外をグーグルで名前空間を見つけて使用できるようにする以外のオプションがあるかどうかを確認しようとしているだけです。

4

3 に答える 3

6

ほとんどの場合、これは悪い習慣です。再利用する必要がある少数の例外があります (InvalidOperation、NullReference、ArgumentException、その他いくつか)。SqlExceptionしかし、たとえば、フレームワークがそれで何をするかわからないので、自分自身を投げるべきではありません。

独自の例外階層を作成すると、エラー時のアプリケーションに意味が追加されます。すでに意味が理解されている例外を再利用すると、意味が失われ、混乱が生じます。

于 2012-07-18T12:02:16.880 に答える
2

オブジェクト ブラウザで例外クラス ツリー全体を参照できます。System.Exception を探して、派生型をクリックします。それらのすべてがそこにあるかどうかは 100% 確実ではありませんが、それらのほとんどは確実に存在します。System.Exception -> 派生型 (System.Exception ツリーのルートにもあります)

于 2012-07-18T11:58:53.997 に答える
1

MSDN (こちら) でいくつかの例外を見つけることができます。一般に、これらはスローする傾向のある例外であり、多くの場合、これらの例外から独自の例外を派生させます。ただし、1 つのメソッドがあまりにも多くの異なる例外をスローすると、一般的に嫌われます。
また、<exception>xml ドキュメント タグを思い出してください。このタグを使用すると、メソッドがスローする例外とそのタイミングをユーザーに理解させることができます。特定のクラスの例外をスローするよりも、明確さの点でおそらくより重要です。

于 2012-07-18T12:15:13.927 に答える