投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/3/11 18:16:08
> 基本的な制御構文を用いた例外処理をしてみたかったというのが本音です。

手段と目的が入れ替わっちゃってましたね…。😅


> ただ利用しているのが.NET Framework 4.0なので無理そうですが…。

.NET Framework 4 のサポートは、既に 2016/01/12 をもって終了しています。

折角なら現行バージョンのものを学習されることをお奨めします。
作成したアプリを他の人に配布する場合にも、その方が都合が良いでしょう。

ちなみに
  Windows 8.1 なら .NET Framework 4.5.1 以上
  Windows 10 v1803/v1809 なら .NET Framework 4.7.2 以上
  Windows 10 v1903/v1909 なら .NET Framework 4.8 以上
が既定でインストールされています。


開発環境のサポート期限はこんな感じ。
 2020/07/14 … Visual Studio 2010 Service Pack 1 のサポートが終了
 2023/01/10 … Visual Studio 2012 Update 4 のサポートが終了
 2024/04/09 … Visual Studio 2013 Update 3 のサポートが終了
 2024/10/14 … Visual Studio 2015 Update 3 のサポートが終了
 2027/04/03 … Visual Studio 2017 のサポートが終了(v15.9.x)
 2029/04/10 … Visual Studio 2019 のサポートが終了


> .NET Framework 4.0なので無理そうですが…。

.NET Framework 4 には、e.Exception のインスタンスを意図的に
Try ブロックで再スローするための標準的な方法が用意されていません。

エラー発生個所の情報(スタックトレース)を失っても構わないのであれば、
    Throw e.Exception
と書くことで疑似再スローが行えますが、デメリットしか無いですね。
素直に If 文で捕らえましょう。

なお、Try ブロックではなく Catch ブロックの中で再スローする場合には、
引数なしで Throw ステートメントを呼び出せば OK です(今回の目的には合致しませんが)。
こちらは .NET Framework のバージョンには依存しません。
    Throw