簡述PHP7的error和異常處理
阿新 • • 發佈:2017-12-04
continue final ret new span 數值 cti php 報告
看看 try catch 的作用,try的作用就等同於運行,如果try裏面的代碼運行正常沒用報錯的話,將不會觸發catch代碼塊,如果有的話(如下面的$x為0的時候,函數沒有return回數值,那麽將會報告)
Fatal error: Uncaught Exception: Division by zero. in D:\webserver\www\err.php:4 Stack trace: #0 D:\webserver\www\err.php(8): inverse(0) #1 {main} thrown in D:\webserver\www\err.php on line 4
但是下面的因為try去捕獲錯誤僅僅輸出為:
0.2 Caught exception: Division by zero. Hello World
example:
<?php function inverse($x) { if (!$x) { throw new Exception(‘Division by zero.‘); } return 1/$x; } try { echo inverse(5) . "\n"; echo inverse(0) . "\n"; } catch (Exception $e) { echo‘Caught exception: ‘, $e->getMessage(), "\n"; } // Continue execution echo "Hello World\n"; ?>
try catch後面可以跟隨finally為必須處理的回調
try { echo inverse(0) . "\n"; } catch (Exception $e) { echo ‘Caught exception: ‘, $e->getMessage(), "\n"; } finally { echo "Second finally.\n"; }
無論try裏面的代碼塊是否會有error拋出都會輸出
Second finally.\n
簡述PHP7的error和異常處理