0
下面是我用趕在全球範圍內錯過了異常和錯誤代碼:set_exception_handler試圖趕上錯誤
set_exception_handler(function(Exception $e) {
$exceptionCode = $e->getCode();
switch ($exceptionCode) {
case '42000': # Database
FlashMessages::flashIt('message', 'There is a syntax error in the db query');
include(Settings::ABSPATH . '/src/views/message.php');
var_dump($e);
exit;
break;
default:
FlashMessages::flashIt('message', 'Something unpredicted happened.');
include(Settings::ABSPATH . '/src/views/message.php');
var_dump($e);
exit;
break;
}
});
set_error_handler(function($errno, $errstr, $errfile, $errline) {
FlashMessages::flashIt('message', 'An error happened.');
include(Settings::ABSPATH . '/src/views/message.php');
var_dump($errstr);
exit;
});
我期待什麼: 所有異常,由set_exception_handler抓獲。 set_error_handler捕獲的所有錯誤。
我有什麼:set_exception_handler試圖找出錯誤併產生問題:致命錯誤:未捕獲的類型錯誤:傳遞給參數1 {關閉}()必須是例外的一個實例,給
的set_error_han dler沒有按」錯誤的實例即使我完全刪除了set_exception_handler,也可以捕獲這種錯誤。
問題:如何從這些全局函數中捕獲這兩種函數都錯過的錯誤?