NonSoft

例外処理(System.Exception)と例外一覧の
サンプル(VB.NET)


 サンプル(ソース/コード)
例外処理(System.Exception)と個別例外(System.Exceptionの派生クラス)を定義するサンプル(VB.NET)です。

全ての例外をキャッチするサンプルと個別の例外をキャッチするサンプルに分けて記述しています。

このサンプルは、VB.NET標準の例外一覧として確認する時の参考にもなると思います。

C#.NETの例外処理(System.Exception)のサンプルはこちらです。
例外処理(System.Exception)と例外一覧のサンプル(C#.NET)

★全ての例外をキャッチするサンプル
Try
    ' 例外が発生しない時に処理する正常時のコード
Catch ex As System.Exception
    ' 例外が発生した時に処理されるコード
    ' (アプリケーションの実行中に発生するエラーを表します)
Finally
    ' 例外が発生しても発生しなくても、最後に処理されるコード
End Try

★個別の例外をキャッチするサンプル
' ABC順に定義したサンプルになっています。(実際に使用する際は定義する順番に注意)
Try
    ' 例外が発生しない時に処理する正常時のコード
Catch ex As System.AccessViolationException
    ' 保護されたメモリの読み取りまたは書き込みが試行されたときにスローされる例外。
Catch ex As System.AppDomainUnloadedException
    ' アンロードされたアプリケーション ドメインにアクセスしようとするとスローされる例外。
Catch ex As System.ApplicationException
    ' 致命的ではないアプリケーション エラーが発生した場合にスローされる例外。
Catch ex As System.ArgumentException
    ' メソッドに渡された引数のいずれかが無効な場合にスローされる例外。
Catch ex As System.ArgumentNullException
    ' null 参照 (Visual Basic では Nothing) を有効な引数として受け付けないメソッドに 
    ' null 参照を渡した場合にスローされる例外。
Catch ex As System.ArgumentOutOfRangeException
    ' 呼び出されたメソッドで定義されている許容範囲外の値が引数として渡された場合に
    ' スローされる例外。
Catch ex As System.ArithmeticException
    ' 算術演算、キャスト演算、または変換演算におけるエラーが原因でスローされる例外。
Catch ex As System.ArrayTypeMismatchException
    ' 間違った型の要素を配列に格納しようとするとスローされる例外。
Catch ex As System.BadImageFormatException
    ' DLL または実行可能プログラムのファイル イメージが無効である場合にスローされる例外。
Catch ex As System.CannotUnloadAppDomainException
    ' アプリケーション ドメインをアンロードしようとして失敗した場合にスローされる例外。
Catch ex As System.ContextMarshalException
    ' コンテキストの境界を越えてオブジェクトをマーシャリングしようとして失敗した場合に
    ' スローされる例外。
Catch ex As System.DataMisalignedException
    ' データの単位が、データ サイズの倍数ではないアドレスから読み込まれたり、
    ' アドレスに書き込まれたりしたときにスローされる例外。このクラスは継承できません。
Catch ex As System.DivideByZeroException
    ' 整数値または小数値を 0 で除算しようとするとスローされる例外。
Catch ex As System.DllNotFoundException
    ' DLL インポートで指定した DLL が見つからない場合にスローされる例外。
Catch ex As System.DuplicateWaitObjectException
    ' 同期オブジェクトの配列に 1 つのオブジェクトが 2 回以上現れた場合にスローされる例外。
Catch ex As System.EntryPointNotFoundException
    ' 開始メソッドが指定されていないことが原因でクラスの読み込みに失敗した場合に
    ' スローされる例外。
Catch ex As System.ExecutionEngineException
    ' 共通言語ランタイムの実行エンジンに内部エラーが発生した場合にスローされる例外。
    ' このクラスは継承できません。
Catch ex As System.FieldAccessException
    ' クラス内部のプライベート フィールドまたはプロテクト フィールドに対して無効なアクセスが
    ' 試行された場合にスローされる例外。
Catch ex As System.FormatException
    ' 引数の書式が、呼び出されたメソッドのパラメータの仕様に一致していない場合に
    ' スローされる例外。
Catch ex As System.IndexOutOfRangeException
    ' 配列の境界外のインデックスを使用して配列の要素にアクセスしようとした場合に
    ' スローされる例外。このクラスは継承できません。
Catch ex As System.InsufficientMemoryException
    ' この例外は、使用可能なメモリが十分に残っているかどうかのチェックで、
    ' 要件が満たされなかった場合にスローされます。このクラスは継承できません。
Catch ex As System.InvalidCastException
    ' 無効なキャストまたは明示的な型変換に対してスローされる例外。
Catch ex As System.InvalidOperationException
    ' オブジェクトの現在の状態に対して無効なメソッド呼び出しが行われた場合に
    ' スローされる例外。
Catch ex As System.InvalidProgramException
    ' プログラムに無効な MSIL (Microsoft intermediate language) またはメタデータが
    ' 含まれている場合にスローされる例外。通常、これはプログラムを生成した
    ' コンパイラのバグを示します。
Catch ex As System.MemberAccessException
    ' クラス メンバにアクセスしようとして失敗した場合にスローされる例外。
Catch ex As System.MethodAccessException
    ' クラス内部のプライベート メソッドまたはプロテクト メソッドに対して無効なアクセスが
    ' 試行された場合にスローされる例外。
Catch ex As System.MissingFieldException
    ' 存在しないフィールドに動的にアクセスしようとした場合にスローされる例外。
Catch ex As System.MissingMemberException
    ' 存在しないクラス メンバに動的にアクセスしようとした場合にスローされる例外。
Catch ex As System.MissingMethodException
    ' 存在しないメソッドに動的にアクセスしようとした場合にスローされる例外。
Catch ex As System.MulticastNotSupportedException
    ' いずれか一方のオペランドが null 参照 (Visual Basic の場合は Nothing) でない場合は
    ' 組み合わせることができない 2 つのデリゲート型のインスタンスを組み合わせようとした
    ' 場合にスローされる例外。このクラスは継承できません。
Catch ex As System.NotFiniteNumberException
    ' 浮動小数点値が正の無限大、負の無限大、または非数 (NaN) の場合にスローされる例外。
Catch ex As System.NotImplementedException
    ' 要求されたメソッドまたは操作が実装されない場合にスローされる例外。
Catch ex As System.NotSupportedException
    ' 呼び出されたメソッドがサポートされていない場合、または呼び出された機能を備えていない
    ' ストリームに対して読み取り、シーク、書き込みが試行された場合にスローされる例外。
Catch ex As System.NullReferenceException
    ' null オブジェクト参照を逆参照しようとした場合にスローされる例外。
Catch ex As System.OperationCanceledException
    ' この例外は、スレッドによって実行されている操作がキャンセルされたときに、
    ' そのスレッドでスローされます。
Catch ex As System.OutOfMemoryException
    ' プログラムの実行を継続するためのメモリが不足している場合にスローされる例外。
Catch ex As System.OverflowException
    ' checked コンテキストで、算術演算、キャスト演算、
    ' または変換演算の結果オーバーフローが発生した場合にスローされる例外。
Catch ex As System.PlatformNotSupportedException
    ' 特定のプラットフォームで機能が実行されない場合にスローされる例外。
Catch ex As System.RankException
    ' 間違った次元数の配列がメソッドに渡された際にスローされる例外。
Catch ex As System.StackOverflowException
    ' 保留状態のメソッド呼び出しが多くなりすぎ、
    ' 実行スタックがオーバーフローした場合にスローされる例外。このクラスは継承できません。
Catch ex As System.SystemException
    ' 名前空間内の定義済み例外の基本クラスを定義します。
Catch ex As System.TimeoutException
    ' プロセスまたは操作用に割り当てられた時間が経過したときにスローされる例外。
Catch ex As System.TypeLoadException
    ' 型の読み取りエラーが発生したときにスローされる例外。
Catch ex As System.TypeUnloadedException
    ' アンロードされたクラスにアクセスしようとした場合にスローされる例外。
Catch ex As System.UnauthorizedAccessException
    ' オペレーティング システムが I/O エラーまたは特定の種類のセキュリティ エラーのために
    ' アクセスを拒否する場合、スローされる例外。
Catch ex As System.Collections.Generic.KeyNotFoundException
    ' コレクション内の要素にアクセスするために指定されたキーが、
    ' コレクションのいずれのキーとも一致しない場合にスローされる例外。
Catch ex As System.IO.DirectoryNotFoundException
    ' ファイルまたはディレクトリの一部が見つからない場合にスローされる例外。
Catch ex As System.IO.DriveNotFoundException
    ' 使用できないドライブまたは共有にアクセスしようとするとスローされる例外。
Catch ex As System.IO.EndOfStreamException
    ' ストリームの末尾を越えて読み込もうとしたときにスローされる例外。
Catch ex As System.IO.FileLoadException
    ' マネージ アセンブリが見つかったが、読み込むことができない場合にスローされる例外。
Catch ex As System.IO.FileNotFoundException
    ' ディスク上に存在しないファイルにアクセスしようとして失敗したときにスローされる例外。
Catch ex As System.IO.IOException
    ' I/O エラーが発生したときにスローされる例外。
Catch ex As System.IO.PathTooLongException
    ' パス名またはファイル名がシステム定義の最大長よりも長いときにスローされる例外。
Catch ex As System.IO.IsolatedStorage.IsolatedStorageException
    ' 分離ストレージの操作で障害が発生するとスローされる例外。
Catch ex As System.Reflection.AmbiguousMatchException
    ' メンバへのバインド時に、バインディング基準に一致するメンバが複数ある場合に
    ' スローされる例外。このクラスは継承できません。
Catch ex As System.Reflection.CustomAttributeFormatException
    ' カスタム属性のバイナリ形式が無効な場合にスローされる例外。
Catch ex As System.Reflection.InvalidFilterCriteriaException
    ' 使用するフィルタの種類に対してフィルタ基準が無効な場合に
    ' System.Type.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,
    ' System.Reflection.MemberFilter,System.Object)でスローされる例外。
Catch ex As System.Reflection.TargetException
    ' 無効なターゲットを呼び出そうとするとスローされる例外を表します。
Catch ex As System.Reflection.TargetParameterCountException
    ' 呼び出し時に指定されたパラメータの数が、必要なパラメータ数と異なる場合に
    ' スローされる例外。このクラスは継承できません。
Catch ex As System.Resources.MissingManifestResourceException
    ' 適切なサテライト アセンブリがないために、ニュートラル カルチャ リソースが
    ' 必要な場合に、メイン アセンブリにニュートラル カルチャ リソースが含まれていないと
    ' スローされる例外。
Catch ex As System.Resources.MissingSatelliteAssemblyException
    ' ニュートラル カルチャのリソースのサテライト アセンブリが見つからない場合に
    ' スローされる例外。
Catch ex As System.Runtime.InteropServices.COMException
    ' COM メソッドの呼び出しによって、認識されない HRESULT が返された場合に
    ' スローされる例外です。
Catch ex As System.Runtime.InteropServices.InvalidComObjectException
    ' 無効な COM オブジェクトを使用したときにスローされる例外です。
Catch ex As System.Runtime.InteropServices.InvalidOleVariantTypeException
    ' マネージ コードにマーシャリングできないバリアント型の引数が見つかった場合に、
    ' マーシャラによってスローされる例外。
Catch ex As System.Runtime.InteropServices.MarshalDirectiveException
    ' マーシャラが、サポートしていないSystem.Runtime.InteropServices.MarshalAsAttributeを
    ' 検出した場合にスローする例外。
Catch ex As System.Runtime.InteropServices.SafeArrayRankMismatchException
    ' 着信 SAFEARRAY のランクが、マネージ シグネチャで指定したランクと一致しない場合に
    ' スローされる例外。
Catch ex As System.Runtime.InteropServices.SafeArrayTypeMismatchException
    ' 着信 SAFEARRAY の型が、マネージ シグネチャで指定した型と一致しない場合に
    ' スローされる例外。
Catch ex As System.Runtime.InteropServices.SEHException
    ' 構造化例外ハンドラ (SEH: Structured Exception Handler) エラーを表します。
Catch ex As System.Runtime.Remoting.RemotingException
    ' リモート処理中に何かが失敗すると、スローされる例外。
Catch ex As System.Runtime.Remoting.RemotingTimeoutException
    ' 以前に指定した期間内にサーバーまたはクライアントに到達できないと、
    ' スローされる例外。
Catch ex As System.Runtime.Remoting.ServerException
    ' クライアントが、例外をスローできない非 .NET Framework アプリケーションに
    ' 接続する場合に、クライアントにエラーを通知するためにスローされる例外。
Catch ex As System.Runtime.Serialization.SerializationException
    ' シリアル化中または逆シリアル化中にエラーが発生するとスローされる例外。
Catch ex As System.Security.HostProtectionException
    ' ホスト リソースの拒否が検出されたときにスローされる例外です。
Catch ex As System.Security.SecurityException
    ' セキュリティ エラーが検出されたときにスローされる例外。
Catch ex As System.Security.VerificationException
    ' セキュリティ ポリシーでコードをタイプ セーフにする必要があり、
    ' 検証プロセスでコードがタイプ セーフかどうかを検証できないときにスローされる例外。
Catch ex As System.Security.XmlSyntaxException
    ' XML 解析で構文エラーが存在する場合にスローされる例外。このクラスは継承できません。
Catch ex As System.Security.AccessControl.PrivilegeNotHeldException
    ' System.Security.AccessControl名前空間内のメソッドが、
    ' そのメソッドに設定されていない特権を有効にしようとするとスローされる例外。
Catch ex As System.Security.Cryptography.CryptographicException
    ' 暗号操作中にエラーが発生すると、スローされる例外。
Catch ex As System.Security.Cryptography.CryptographicUnexpectedOperationException
    ' 暗号操作中に予期しない操作が発生するとスローされる例外。
Catch ex As System.Security.Policy.PolicyException
    ' ポリシーでコードの実行を禁止するとスローされる例外。
Catch ex As System.Security.Principal.IdentityNotMappedException
    ' ID を既知の ID に割り当てることができないプリンシパルの例外を表します。
Catch ex As System.Text.DecoderFallbackException
    ' デコーダ フォールバック操作が失敗したときにスローされる例外。
    ' このクラスは継承できません。
Catch ex As System.Text.EncoderFallbackException
    ' エンコーダ フォールバック操作が失敗したときにスローされる例外。
    ' このクラスは継承できません。
Catch ex As System.Threading.AbandonedMutexException
    ' スレッドが、別のスレッドが解放せずに終了することによって放棄した
    ' System.Threading.Mutexオブジェクトを取得したときにスローされる例外。
Catch ex As System.Threading.SynchronizationLockException
    ' 指定した Monitor でロックを所有していることが呼び出し元の条件となるメソッドを、
    ' そのロックを所有していない呼び出し元が呼び出した場合にスローされる例外です。
Catch ex As System.Threading.ThreadInterruptedException
    ' System.Threading.Threadが待機状態のときに中断されるとスローされる例外。
Catch ex As System.Threading.ThreadStateException
    ' メソッドの呼び出しでSystem.Threading.Threadが
    ' 無効なSystem.Threading.Thread.ThreadStateである場合は、例外がスローされます。
Catch ex As System.Threading.WaitHandleCannotBeOpenedException
    ' 存在しないシステム ミューテックスまたはシステム セマフォを開こうとしたときに
    ' スローされる例外。
Finally
    ' 例外が発生しても発生しなくても、最後に処理されるコード
End Try