-2
Exception
クラスを2回拡張して、さまざまな種類の例外をキャッチしました。最初の例外がキャッチされると、別のエラーがないかどうかをチェックし、エラーがある場合は新しい例外を再度スローします。 問題は、2番目の例外を検出できないことです。catch内でスローされた例外をPHPがキャッチできません
class FIRST extends Exception {}
class SECOND extends Exception {}
try {
throw new FIRST("FIRST", 1);
} catch(FIRST $e) {
//caught
if(sth) {
echo 'ok'; //printed
throw new SECOND("SECOND", 1);
echo 'ok'; //never printed
}
}
catch(SECOND $e) {
//not caught
}
catch(PDOException $e) {
//caught
}
finally {
//
}
、これが唯一の方法です:
あなたが別の
?私はそれらをお互いに入れ子にしたくない。 –try-catch
構造で、内のコードをラップする必要がcatch
ブロックのいずれかからスローされた例外をキャッチする必要がある場合http://stackoverflow.com/questions/8439581/catching-multiple-exception-types-in-one-catch-block私は最初の答えのようにスムースをしたいです。 –
catchブロック内から追加の例外をスローすると、他のcatchブロックにキャッチされません。それはちょうど 'try-catch'がどのように機能するかです。あなたがリンクした答えはその作業をしません。 – ShiraNai7