◆ try-catch で catch 連続してたら上の catch の例外も受け取れそうな気がしてくる
◆ というか受け取りたいときがある

C# の catch は型ごとに書けて それぞれの例外ごとの処理ができます
対象になるのは try 句の中での例外で catch 内での例外はその外の try 句がなければ catch されません

なのですが 見た目的に try と catch が並列に並んでいて 上から順に実行されて catch 内の例外も下の catch で受け取ってくれそうに見えてくるのですよね
コードにするとこうです
try
{
throw new ArgumentException("invalid argument");
}
catch (ArgumentException)
{
Console.WriteLine("shown");
throw new Exception("error");
}
catch (Exception)
{
Console.WriteLine("not shown");
}
shown
error

catch 内で投げられた error はそのまま catch されず error とコンソールにでました
not shown のところは実行されないので表示されません


ところで JavaScript の Promise では
new Promise((ok, ng) => {throw new ReferenceError("variable not defined")})
.catch(err => {
console.log("shown")
throw new Error("error")
})
.catch(err => {
console.log("shown too")
}
shown
shown too

catch は上から順なんですよね