西西軟件下載最安全的下載網站、值得信賴的軟件下載站!

首頁編程開發(fā)php教程 → PHP 的錯誤、異常等級常量表,異常處理及錯誤回調函數

PHP 的錯誤、異常等級常量表,異常處理及錯誤回調函數

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2012/12/5 11:20:56字體大小:A-A+

作者:ecalf點擊:0次評論:0次標簽: 異常處理

3 頁 Exception 異常的回調函數

三 、 Exception 異常的回調函數

set_exception_handler(callback functionName)  //發(fā)生 Exception 或其 子類的 異常是會調用此函數

function exceptionHandlerFun($errObj){  // Exception 異常的回調函數 只有一個參數,就是拋出的異常對象。

//.......

}

 Exception 異常的回調函數并不能像  set_error_handler 的回調函數那樣通過返回 true 來使異常被消除,即使回調函數處理了異常,后繼代碼也不會被繼續(xù)執(zhí)行,因此想繼續(xù)執(zhí)行后續(xù)代碼必須使用 try-catch。

但是有一個例外:腳本結束回調函數可以被執(zhí)行,拋出的異常即使沒有被處理,該回調函數也是能被執(zhí)行的。

register_shutdown_function(callback functionName[,argument1,argument2,...]);

例如:

function shutdownfunction(){

    echo 'script is end';

}

register_shutdown_function("shutdownfunction");

因為 shutdownfunction() 在腳本結束時被執(zhí)行,所以 這個回調函數之內可以調用腳本中任意位置的函數,即使該函數定義在 錯誤拋出位置之后(函數定義是在 腳本編譯期完成的)。

四、trigger_error(string errorMsg[,int user_error_type]) 

 該函數用于主動觸發(fā)一個錯誤: user_error_type 只能是 E_ALL、E_USER_ERROR、 E_USER_WARNING、 E_USER_NOTICE 或其組合的值。

set_error_handler(callbeck functionName[,user_error_type]); // 為 trigger_error() 設置一個回調函數來處理錯誤,包括系統拋出的錯誤和用戶使用 trigger_error() 函數觸發(fā)的錯誤。

可選參數 user_error_type :

如果設定此參數,則 trigger_error 拋出的錯誤類型符合 在user_error_type 的定義范圍才能觸發(fā)回調函數。

這個值的設置類似于 error_reporting() 函數 。

第一個參數(callbeck functionName):

一個函數名,該函數 可以有 5 個參數,其中前 2 個必選,依次是:

trigger_error 拋出的 user_error_type、trigger_error 拋出的 errorMsg、拋出錯誤的文件的絕對路勁、拋出錯誤的行號、拋出錯誤時的上下文環(huán)境 (一個數組,包含了trigger_error() 所在作用域內的所有變量、函數、類等數據 )

回調函數的返回值: 如果返回 false ,系統錯誤處理機制仍然繼續(xù)拋出該錯誤,返回 true 或 無返回值 則消除錯誤。

 trigger_error()  觸發(fā)的錯誤不會被 try-catch 異常捕獲語句捕獲。

本文導航

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數: 0/500 (您的評論需要經過審核才能顯示)
    推薦文章

    沒有數據

      沒有數據
    最新文章
      沒有數據