PHPのtry catchについて
try ( // 例外発生の可能性がるコード } catch (例外クラス名 変数) { // 例外発生時の処理 }
的な説明はよく見るため、なんとなく、
「なるほど、エラーを発生させたくないコードはtryの中で書けば、エラーが発生しても止まらず、catchでエラーメッセージだけ出してくれるんだな」みたいな漠然とした理解でした。
で、試しに
try { $a = 1 /0; } catch (Exception $e) { echo $e->getMessage(); }
のようなコードを書いてみた所、
Warning: Division by zero in ...
が表示され、これではtry catchを使わない場合と一緒です。
https://qiita.com/toshiro3/items/6095731494a31882a42e
を参考にして、
set_error_handler( function ($errno, $errstr, $errfile, $errline) { // エラーが発生した場合、ErrorExceptionを発生させる throw new ErrorException( $errstr, 0, $errno, $errfile, $errline ); } ); try { $a = 1 /0; } catch (Exception $e) { echo $e->getMessage(); }
としてようやくtry catchらしく?、
Division by zero
と表示され、エラーが補足できたようです。
質問なのですが、上記のような理由から、そもそも
try catchは、 throw new XXException と 抱き合わせで使わなければ意味がないものなのでしょうか。
回答2件
あなたの回答
tips
プレビュー