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