私は延長した Exception
異なる種類のクラスをキャッチするために2回クラス例外です。最初の例外が捉えられたとき、私は別のエラーをチェックし、もしエラーがあれば私は再び新しい例外を投げます。 問題は、2番目の例外をキャッチできないことです。
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 {
//
}
回答:
回答№1は2ザ catch
ブロックは、から来る例外のみをキャッチします。 try
ブロック。
あなたがのいずれかからスローされた例外をキャッチする必要がある場合 catch
内部コードを別のコードでラップする必要があるブロック try-catch
構造:
try {
throw new FIRST("FIRST", 1);
} catch(FIRST $e) {
//caught
try {
if(sth) {
echo "ok"; //printed
throw new SECOND("SECOND", 1);
echo "ok"; //never printed
}
} catch (SECOND $e) {
//caught
}
}
catch(SECOND $e) {
//not caught
}
catch(PDOException $e) {
//caught
}
finally {
//
}