try~catchの中のswitch文で、switchの上階層にあるtry~catch文を抜けたい
現状
try {
switch ($test) {
case 1:
break;
case 2:
throw new RuntimeException('');
case 3:
throw new RuntimeException('');
default:
throw new RuntimeException('');
}
} catch (RuntimeException $e) {
}
やりたいこと
・2の時、try~catchを抜けたい
・試してみたけど、うまくいかないコード
try {
switch () {
case 1:
break;
case 2:
$hoge = FALSE;
break 2;
case 3:
throw new RuntimeException('');
default:
throw new RuntimeException('');
}
} catch (RuntimeException $e) {
}
//ココへ飛ばしたい
もしくは、下記みたいなことは出来ないでしょうか?
try {
switch () {
case 1:
break;
case 2:
$hoge = FALSE;
throw new HogeException('');
case 3:
throw new RuntimeException('');
default:
throw new RuntimeException('');
}
} catch (RuntimeException $e) {
} catch (HogeException $e) {
//ここで2だけを捕捉したい
}