PHPの例外、特にfinally
が思った通り1に動作する。
すてき。
環境情報
$ php -v
PHP 5.6.29 (cli) (built: Dec 9 2016 07:03:56)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
さんぷるこーど
<?php
error_reporting( -1 ) ;
echo call_user_func( function ($human) {
try{
throw new Exception('( ゚∀゚)') ; // (1)
}
catch ( \Exception $e ) {
echo $e->getMessage() ; // (2)
return '(゚∀゚ )' ; // (4)
}
finally {
echo $human ; // (3)
}
}, '人') . PHP_EOL ;
//=> ( ゚∀゚)人(゚∀゚ )
参考と注釈
-
PHP 5.5 以降では、catch ブロックの後に finally ブロックも指定できるようになりました。 finally ブロックの何かに書いたコードは、 try および catch ブロックの後で常に実行されます。例外がスローさされたかどうかには関係ありません。 ↩