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