PHPのtry~catchの動作の流れ
try{}で囲った中で、 throw new Exceptionが実行された場合、例外をcatch()まで送る。throw new Exceptionの次はcatch()から処理が再開されるので、エラーが起きても処理が継続できる。
コード例:
function divide($numerator, $denominator) {
if ($denominator == 0) {
//ここでthrow
throw new Exception("0で割ることはできません。");
}
return $numerator / $denominator;
}
try {
// エラーーになる部分
$result = divide(10, 0);
echo $result;
} catch (Exception $e) {
// エラーが発生した場合の処理
echo "エラーが発生しました: " . $e->getMessage();
}
//処理は継続される
echo "処理終了";
出力結果は以下のようになります
エラーが発生しました: 0で割ることはできません。処理終了
上記のコードでは throw new Exceptionしているfunction divide($numerator, $denominator)はtry{}の中に入っていないが、呼び出し元がtry{}の中にあるため、問題なく動作する。