http://msdn.microsoft.com/en-us/vcsharp/aa336812.aspx を勝手に翻訳 なぜ、C#では例外定義を持たないのか いくつかの言語では、例外定義をメンバの宣言に含めることができたり、要求されます。 例えば、ある言語の作りでは、メソッドが発生させる ArgumentException は次のように宣言されます。 void DoSomething(int a) throws ArgumentException {...} C# はそのような例外定義はできないし、要求もされません。 いくつかの理由で例外定義を削除しました。その理由は バージョニング 生産性とコードの品質 クラス作成者に「チェックされた例外」と「未チェックの例外」違いを強いることの非現実性 インタフェースに対して、正しく例外を規定することの困難さ バージョニング C#が例外定義を要求した