<?php try { throw new Exception('エラーが発生しました'); } catch (Exception $e){ } ?>
tryブロック内で例外が発生した場合、catchブロック内で処理、処理終了後、以降へ進む。
tryブロック内で何も起こらなかった場合、catchブロックは無視され、以降の処理へ進む。
サンプル
<?php class Calc { public static function division($int1, $int2) { try { if ($int2 == 0){ throw new Exception('0で割ろうとしました<br>'); } $answer = $int1 / $int2; echo $answer. "<br>"; echo '割り算が終了しました<br>'; } catch (Exception $e){ echo $e->getMessage(); echo '割り算が異常終了しました'; } } } Calc::division(10, 2); Calc::division(10, 0); ?>
もう少し分かり易くするため、個人の総量規制で考えてみます。
<?php class Vcontrol { public static function calc($salary, $loan) { if($salary > 0){ try { if ($salary * 1/3 < $loan){ throw new Exception('借入総額が年収の1/3を超えています。'); } $available = $salary * 1/3 - $loan; echo '貸付可能額は' .round($available,1). '万円です。<br>'; } catch (Exception $e){ echo $e->getMessage(); echo '総量規制により貸付できかねます。<br>'; } } else { echo '貴殿の年収が足りません。<br>'; } } } Vcontrol::calc(500, 20); Vcontrol::calc(300, 200); Vcontrol::calc(0, 50); ?>