[解決済み] .NETのApplicationExceptionは何のためにあるのですか?
質問
例外を投げるには、通常、組み込みの例外クラス、例えば、次のようなものを使います。
ArgumentNullException
と
NotSupportedException
. しかし、時にはカスタム例外を使用する必要があり、その場合はこう書きます。
class SlippedOnABananaException : Exception { }
class ChokedOnAnAppleException : Exception { }
といった具合です。そしてこれらをコードで投げたり捕まえたりしています。しかし今日、私は
ApplicationException
クラスは、代わりに使うべきでしょうか?これは何のためにあるのでしょうか?
事実上同一のExceptionクラスを異なる名前でたくさん持つのは非効率的に思えます(私は通常、個々の機能を必要としません)。しかし、私は一般的な
ApplicationException
そして、エラーが何であったかを判断するために余分なコードを使用しなければなりません。
どこで
ApplicationException
は、私のコードに適合するのでしょうか?
どのように解決するのですか?
によると 備考 をmsdnに掲載しました。
共通言語ランタイムではなく、ユーザーアプリケーションは ApplicationException クラスから派生したカスタム例外を投げる。ApplicationExceptionクラスは、アプリケーションによって定義された例外と、システムによって定義された例外を区別する。
独自の例外を生成する必要があるアプリケーションを設計している場合は、Exceptionクラスからカスタム例外を派生させることをお勧めします。当初、カスタム例外は ApplicationException クラスから派生させるべきと考えられていましたが、実際には大きな付加価値をもたらさないことが分かっています。詳細については、例外処理のベストプラクティスを参照してください。
から派生させます。
Exception
. また、正当な理由がある限り、自分のケースのために新しい例外を作ることは問題ないと思います。もし、フレームワークにすでに例外が存在するケースに遭遇した場合は、それを使用し、そうでない場合は、自分で例外を作成するようにしてください。
関連
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Javaにおける例外処理によるパフォーマンスへの影響とは?
-
[解決済み】Exceptionを投げるとき、どの部分が高価なのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】Nullableオブジェクトは値を持たなければならない?