1. 接管错误:
//自定义错误接管 function userErrorHandler($errno, $errstr, $errfile, $errline){ if (!(error_reporting() & $errno)) { //错误码未包含在错误报告中 return; } switch ($errno) { case E_USER_ERROR: echo "<b>My ERROR</b> [$errno] $errstr<br />\n"; echo " Fatal error on line $errline in file $errfile"; echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n"; echo "Aborting...<br />\n"; exit(1); break; case E_USER_WARNING: echo "<b>WARNING</b> [$errno] $errstr<br />\n"; break; case E_USER_NOTICE: echo "<b>NOTICE</b> [$errno] $errstr<br />\n"; break; default: echo "Unknown error type: [$errno] $errstr<br />\n"; break; } //不执行PHP内置的错误接管 return true; } //设置错误接管的自定义函数 set_error_handler("userErrorHandler");
2. 接管异常:
//自定义异常的处理 function exception_handler($exception) { echo "Uncaught exception: " , $exception->getMessage(), "\n"; } //设置异常接管的自定义函数 set_exception_handler('exception_handler');