初めに
上司「Qiita(社内で)公開しませんか?」
ApplicationExceptionとは
しません。
勉強会で__ApplicationException__なるものを知りました。
Exceptionクラスの派生クラスですが、参考書もMSDNも「非推奨」としています。以下公式より。
System.ApplicationException をスローしたり、System.ApplicationException から派生したりしないでください。
何故非推奨?
結論から言うと、__MicrosoftがExceptionのルールを破ったから__らしいです。
その昔
- 共通言語ランタイム(CLR)がスローする例外→SystemExceptionクラスから派生
- アプリケーションがスローする例外→ApplicationExceptionクラスから派生
というルールをMicrosoftが推奨していました。
しかし、ある日Microsoftの開発者がそのルールを守らず、CLRがスローするのにApplicationExceptionから派生させてたり、その逆、アプリケーションがスローするのにSystemExceptionから派生させてたりしてしまったとかなんとか...。
当然設計者も使用者も混乱するので、ある日を境に
「全ての例外はExceptionから派生させよう」
とルールを一新し、混乱の元であるSystemApplicationの使用を非推奨としているわけです。
最後に
天下のMicrosoft社の人でも間違えるんですね...。非推奨の理由を知って少し驚いたので、まとめさせていただきました。
もし説明に間違いや御幣がある場合は、教えていただければ幸いです。では。