例外は、実行プログラムによって生成される例外と、共通言語ランタイムによって生成される例外の 2 種類に分類されます。また、アプリケーションまたはランタイムによってスローされる例外の階層もあります。 Exception は、例外の基本クラスです。ApplicationException や SystemException などのさまざまな例外クラスが Exception から直接継承されます。ほとんどのランタイム例外は、この 2 つのクラスに基づいて作成されます。 Exception から直接派生するほとんどの例外では、Exception クラスへ機能が追加されることはありません。たとえば、InvalidCastException クラス階層は次のようになります。 Object Exception SystemException InvalidCastEx