php的异常和错误的接管

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');

 

 

 

posted @ 2013-03-22 10:52  郎涛  阅读(591)  评论(0编辑  收藏  举报