2016-03-11 18 views
0

問題1: 我有一個自定義error_handler,由set_error_handler()註冊。如果我在內部攔截E_USER_ERROR,我應該手動撥打die()exit()來結束腳本,否則它將由PHP自動完成。PHP:需要一些關於自定義錯誤和異常處理程序和trigger_error的說明

問題#2: 我有一個自定義的exception_handler,由set_exception_handler()註冊。我應該手動撥打die()exit()來結束腳本,否則它將由PHP自動完成。

問題3: 如果我有error_reporting(0)這是否意味着我trigger_error()調用不會引發錯誤

回答

0

你檢查手冊? :)

1)http://php.net/set-error-handler

另外請注意,這是你的責任,死亡()如果必要的。如果錯誤處理函數返回,則腳本執行將繼續執行導致錯誤的語句之後的下一個語句。

2)http://php.net/set-exception-handler

執行將停止exception_handler被調用後。

3.)http://php.net/trigger-error

生成一個用戶級別的錯誤/警告/通知消息。

這將服從你的error_reporting設置爲E_USER_NOTICE的,除非使用了第二個參數。

+0

大比!關於#1和#2都很清楚。關於#3。所以如果我的錯誤報告被設置爲0,那麼沒有'E_USER_ERROR'會被觸發? –

+0

正確。您所做的只是手動創建錯誤(默認情況下爲通知)。它仍然服從[error_reporting](http://php.net/manual/en/function.error-reporting.php)級別,對於'0'則是禁用所有錯誤報告。 – Egg

+0

太棒了!問EGG總比消化PHP文件好! –

相關問題