php 異常處理函數執行順序為:異常對象構造函數set_exception_handler() 調用shutdown 函數exit() 調用
PHP 異常處理中的函數執行順序
在 PHP 中,當發生異常時,PHP 會按照以下順序執行以下函數:
異常對象構造函數:異常對象將被創建,并傳遞給構造函數。
set_exception_handler() 調用:如果已設置異常處理程序,則將調用該函數。
shutdown 函數:所有已注冊的函數和變量將被銷毀。
exit() 調用:腳本將退出,并返回狀態代碼 1。
實戰案例:
<?php try { throw new Exception('My Exception'); } catch (Exception $e) { echo 'Caught exception: ' . $e->getMessage() . PHP_EOL; } finally { echo 'Finally block executed' . PHP_EOL; }
登錄后復制
執行順序:
- 創建異常對象,并傳遞給
Exception
構造函數。調用 set_exception_handler()
處理程序,因為此處未設置,所以跳過此步驟。所有已注冊的函數和變量將被銷毀。腳本將退出,狀態代碼為 1。輸出:
Caught exception: My Exception Finally block executed
登錄后復制
值得注意的是,即使異常在 finally
塊中拋出,它也不會被捕獲。