エラーなんて 「どこで起きたか」 が大事だし、それに応じてエラー処理したいのに
例外みたいに 「try でくくることでどこで例外が起きても大丈夫!」 のメリットが分からない。
1つ1つ例外で括ってたら行数食うし、else 文も書けないし…。

try func_start();
catch (ExceptionA e) error_func_A();
catch (ExceptionB e) error_func_B();
nocatch {
 // 続きの処理
finaly func_end();
}

みたいに書けないかなぁ。もちろん try 文の中で宣言した変数は nocatch 内でも使いたい。