1. ホーム
  2. c#

[解決済み] .NETのApplicationExceptionは何のためにあるのですか?

2022-05-03 01:45:31

質問

例外を投げるには、通常、組み込みの例外クラス、例えば、次のようなものを使います。 ArgumentNullExceptionNotSupportedException . しかし、時にはカスタム例外を使用する必要があり、その場合はこう書きます。

class SlippedOnABananaException : Exception { }
class ChokedOnAnAppleException : Exception { }

といった具合です。そしてこれらをコードで投げたり捕まえたりしています。しかし今日、私は ApplicationException クラスは、代わりに使うべきでしょうか?これは何のためにあるのでしょうか?

事実上同一のExceptionクラスを異なる名前でたくさん持つのは非効率的に思えます(私は通常、個々の機能を必要としません)。しかし、私は一般的な ApplicationException そして、エラーが何であったかを判断するために余分なコードを使用しなければなりません。

どこで ApplicationException は、私のコードに適合するのでしょうか?

どのように解決するのですか?

によると 備考 をmsdnに掲載しました。

共通言語ランタイムではなく、ユーザーアプリケーションは ApplicationException クラスから派生したカスタム例外を投げる。ApplicationExceptionクラスは、アプリケーションによって定義された例外と、システムによって定義された例外を区別する。

独自の例外を生成する必要があるアプリケーションを設計している場合は、Exceptionクラスからカスタム例外を派生させることをお勧めします。当初、カスタム例外は ApplicationException クラスから派生させるべきと考えられていましたが、実際には大きな付加価値をもたらさないことが分かっています。詳細については、例外処理のベストプラクティスを参照してください。

から派生させます。 Exception . また、正当な理由がある限り、自分のケースのために新しい例外を作ることは問題ないと思います。もし、フレームワークにすでに例外が存在するケースに遭遇した場合は、それを使用し、そうでない場合は、自分で例外を作成するようにしてください。