例外をキャッチするには、 try catch finally を使用します。
例外をキャッチする方法
using System;
try
{
// ここに例外の発生する処理
}
catch (Exception ex)
{
// 例外が発生したときに実行したい処理
}
finally
{
// 例外が発生しても、しなくても、実行したい処理
}
- finally が不要な場合、finally { } は省略できます。
- finally のみ必要な場合、catch () { } は省略できます。
特定の例外をキャッチする
catch の引数で 捕捉したい Exception を指定します。using System;
try
{
// ここに例外の発生する処理
}
catch (ArgumentException ex)
{
// ArgumentException 発生時に実行したい処理
}
catch (System.IO.FileNotFoundException ex)
{
// FileNotFoundException 発生時に実行したい処理
}
catch (Exception ex)
{
// キャッチされなかった例外の処理
}
using System;
try
{
var fp = System.IO.File.Open("", System.IO.FileMode.Open);
}
catch (ArgumentException ex)
{
Console.WriteLine("ArgumentException が発生しました");
Console.WriteLine(ex.Message);
}
catch (System.IO.FileNotFoundException ex)
{
Console.WriteLine("FileNotFoundException が発生しました");
Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("Exception が発生しました");
Console.WriteLine(ex.Message);
}
finally
{
Console.WriteLine("処理が完了しました");
}
- 5行目: 不正なファイル名でファイルを開いているため、「ArgumentException」が発生します。
- 9, 10, 24行目の順序で実行されます。

検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.9.5
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.985 Experience: Windows Feature Experience Pack 120.2212.2020.0