C#やVB.NETでは、プログラムの実行中に例外が発生することがあります。例外はプログラムの正常な実行を妨げ、その原因を調査することが必要になります。例外の種類を取得することは、デバッグや問題解決のために役立ちます。
この記事では、例外の種類を取得する方法を解説します。

例外の種類を取得するにはどうしたらいいですか?



ExceptionクラスのGetTypeメソッドで取得できますよ。
GetTypeで例外の種類を取得する
例外の種類を取得するには、ExceptionクラスのGetTypeメソッドを使用します。
このメソッドは、例外がスローされた型を取得することができます。
Exception.GetType()
例外の種類を取得するには、以下のようにします。
try
{
// 例外を発生させる可能性のあるコード
}
catch (Exception ex)
{
Type exceptionType = ex.GetType();
Console.WriteLine(exceptionType);
}Try
' 例外を発生させる可能性のあるコード
Catch ex As Exception
Dim exceptionType As Type = ex.GetType()
Console.WriteLine(exceptionType)
End Try
上記のサンプルでは、Tryステートメント内で例外が発生すると、Catchステートメントが実行されます。
Catchステートメント内では、Exceptionクラスのインスタンスを生成し、そのGetTypeメソッドを使用して例外の種類を取得しています。
取得した例外の種類は、Type型のexceptionType変数に格納されます。
例外の種類による分岐
例外の種類を取得することで、例外に応じた処理を行うことができます。
以下は、例外の種類によって分岐する例です。
try
{
// 例外が発生する可能性があるコード
}
catch(Exception ex)
{
if(ex.GetType() == typeof(System.IO.FileNotFoundException))
{
Console.WriteLine("ファイルが見つかりませんでした。");
}
else
{
Console.WriteLine("エラーが発生しました。");
}
}Try
' 例外が発生する可能性があるコード
Catch ex As Exception
If ex.GetType() = GetType(System.IO.FileNotFoundException) Then
Console.WriteLine("ファイルが見つかりませんでした。")
Else
Console.WriteLine("エラーが発生しました。")
End If
End Try上記の例では、例外が発生する可能性があるコードをtryブロック内に記述しています。例外が発生すると、catchブロックが実行され、例外オブジェクトがexという名前で宣言されます。if文で例外の種類をチェックし、応じた処理を行っています。
まとめ
C#、VB.NETでは、ExceptionクラスのGetType()メソッドを使用して、例外の種類を取得することができます。取得した例外の種類に応じた処理を行うことで、デバッグや問題
解決が容易になります。例外の種類による分岐処理を行うことで、プログラムの安定性を高めることができます。ただし、例外処理はプログラムのパフォーマンスに影響を与えることがあるため、必要最小限の例外処理を行うことが望ましいです。
また、例外が発生しないようにすることも重要です。例えば、ファイルの読み書きを行う場合は、ファイルが存在するかどうかを確認することが望ましいです。また、メモリ使用量が多すぎる場合は、メモリ使用量を削減するように修正することが望ましいです。
以上のように、例外処理はプログラムの安定性を高めるために重要な役割を果たしています。例外の種類を取得する方法を理解し、適切な例外処理を行うことで、プログラムの品質を向上させましょう。

