タイトルの通り、C#での例外をCatch句内でthrowした挙動を確認してみました。
環境:Visual Studio2017,.net472
Form.cs
privatevoidbutton1_Click(objectsender,EventArgse){textBox1.Text+="①実行開始"+Environment.NewLine;try{Method();}catch{textBox1.Text+="⑤実行中 呼び出し元のCatch"+Environment.NewLine;}textBox1.Text+="⑥実行完了"+Environment.NewLine;}privatevoidMethod(){try{textBox1.Text+="②実行中 Try"+Environment.NewLine;thrownewException();}catch{textBox1.Text+="③実行中 Catch"+Environment.NewLine;throw;}finally{textBox1.Text+="④実行中 Finally"+Environment.NewLine;}textBox1.Text+="⑤実行されない Try外"+Environment.NewLine;}実行結果
①実行開始
②実行中 Try
③実行中 Catch
④実行中 Finally
⑤実行中 呼び出し元のCatch
⑥実行完了
知識の浅い自分は'throw'したらFinallyの実行順がどうなるのか…?
と思って確認した結果です。