finally

Exceptionが起きても、実行しないといけない処理は、finallyに書く。

PHP - 制御構文 - とほほのWWW入門

<html>
  <head>
    <title>finally</title>
  </head>
  <body>
    <?php
      function func($x, $y){
        if ($y == 0){
          throw new Exception("divided by zero!");
        }
        return $x / $y;
      }
      try{
        $ret = func(6, 2);
      }
      catch(Exception $e){
        echo $e->getMessage();
        echo "<br />\n";
      }
      finally{
        echo "finally!<br />\n";
      }
      echo "$ret\n";
    ?>
  </body>
</html>

だと、Exceptionは起きないので、

3が表示されるが、その前にfinallyも表示される。
3が表示されるが、その前にfinallyも表示される。

3が表示されるが、その前にfinally!も表示される。

これだと、Exceptionは起きるので、

例外処理のメッセージが表示されて、しかしfinallyの終了処理も表示される。
例外処理のメッセージが表示されて、しかしfinallyの終了処理も表示される。

例外処理のメッセージが表示されて、しかしfinally!も表示される。

Sample/php/finally/finally/src/finally at master · bg1bgst333/Sample · GitHub