PHPのtry~catchの動作の流れ

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{}の中にあるため、問題なく動作する。