php 例外処理について

2011/10/27

基本的な書き方

  1. try
  2. {
  3.   何かの処理
  4. }
  5. catch ( Exception $e )
  6. {
  7.   echo $e->getMessage();
  8. }

例外を作成

「throw new Exception()」を使う。

  1. function myFunc()
  2. {
  3.   if ( ~~ )
  4.   {
  5.     ~~
  6.   }
  7. else
  8.   {
  9.     throw new Exception(“例外時のメッセージ”);
  10.   }
  11. }
  12.  
  13. try
  14. {
  15.   myFunc();
  16. }
  17. catch ( Exception $e )
  18. {
  19.   echo $e->getMessage();
  20. }

めも

例外があった場合、try()内の以降の処理は飛ばされる

さんぷる

  1. function myFunc($num)
  2. {
  3.   if ( $num !== 5 )
  4.   {
  5.     $num += 5;
  6.   }
  7.   else
  8.   {
  9.     throw new Exception(“「5」だ!”);
  10.   }
  11.   $num += 3;
  12.   return $num;
  13. }
  14.  
  15. try
  16. {
  17.   echo myFunc(10);
  18.   echo myFunc(5);
  19. }
  20. catch ( Exception $e )
  21. {
  22.   echo $e->getMessage();
  23. }
  24.  
  25. echo “えへへ”;

この場合だと下記のようになる。
「17行目」でmyFunc()を実行し、戻り値である「13」を出力。
「18行目」でmyFunc()を実行し、例外(?)を受取り「22行目」を実行。
「25行目」を実行。
※「18行目」を実行後止めたければ「exit」でもすれば良いと思う。

さんぷる2

  1. function myFunc($num)
  2. {
  3.   if ( $num !== 5 )
  4.   {
  5.     $num += 5;
  6.   }
  7.   else
  8.   {
  9.     throw new Exception(“「5」だ!”);
  10.   }
  11.   $num += 3;
  12.   return $num;
  13. }
  14.  
  15. try
  16. {
  17.   echo myFunc(10);
  18.   echo myFunc(5);
  19.   echo myFunc(10);
  20. }
  21. catch ( Exception $e )
  22. {
  23.   echo $e->getMessage();
  24. }
  25.  
  26. echo “えへへ”;

この場合だと下記のようになる。
「17行目」でmyFunc()を実行し、戻り値である「13」を出力。
「18行目」でmyFunc()を実行し、例外(?)を受取り「22行目」を実行。
「19行目」は、例外(?)を受取り済みなので実行はされない。
「25行目」を実行。
※「18行目」を実行後止めたければ「exit」でもすれば良いと思う。

ちなみにRubyはこっち→「ruby 例外処理について

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。