キャッチした例外を再び投げる(再スロー)には、throw を使用します。
例外を再スローする方法
例外を再スローするには、 catch 内 で throw を使用します。using System;
try
{
// 例外を作成して投げる
throw new Exception("エラーが発生しました");
}
catch (Exception ex)
{
System.Console.WriteLine(ex);
throw;
}
- 11行目: ここで throw ex; とすると、例外の発生個所が 6行目から 11 行目に変わります。
using System;
try
{
try
{
// 例外を作成して投げる
throw new Exception("エラーが発生しました");
}
catch (Exception ex)
{
// System.Exception: エラーが発生しました
// Program.cs:line 8
System.Console.WriteLine(ex);
throw;
}
}
catch (Exception ex)
{
// System.Exception: エラーが発生しました
// Program.cs:line 8
System.Console.WriteLine(ex);
}
- 8行目: 例外の発生個所です。
- 13行目: 例外の発生個所は 8行目 となります。
- 15行目: 例外を再スローしています。
- 21行目: 例外の発生個所は 8行目 のままです。15行目で「throw ex;」とすると、ここでは 15行目 となります。

検証環境
- .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