ていうかめも。自分用。
try { // timestampが偶数だった場合例外を投げてみる $isEven = false; if(time()%2 == 0) $isEven = true; if($isEven) throw new Exception('timestamp is even now.'); echo '--------------------'."\n"; echo 'start try block'."\n"; echo '--------------------'."\n\n"; echo 'timestamp is odd now.'; echo "\n\n".'--------------------'."\n"; echo 'end of try block'."\n"; echo '--------------------'."\n"; } catch(Exception $e) { echo '--------------------'."\n"; echo 'start catch block'."\n"; echo '--------------------'."\n\n"; echo $e->getMessage(); echo "\n\n".'--------------------'."\n"; echo 'end of catch block'."\n"; echo '--------------------'."\n"; }
■例外が投げられなかった場合のソース
-------------------- start try block -------------------- timestamp is odd now. -------------------- end of try block --------------------
■例外が投げられた場合のソース
-------------------- start catch block -------------------- timestamp is even now. -------------------- end of catch block --------------------
例外が投げられるとそれ以降のtryブロックの実行は中断されcatch句により補足される。同時にExceptionオブジェクト受け取ることが出来、その例外クラスを用いた処理を記述する事が出来る。というわけ。