首页 > PHP教程 > PHP应用 > 正文:学习动态网页技术PHP中错误处理的一些方法

学习动态网页技术PHP中错误处理的一些方法

web学习吧 2007-09-19 来源: 收藏本文
共7页: 上一页 [1] [2] [3] 4 [5] [6] [7] 下一页         echo('<pre>');
        echo($str);
        echo('</pre>');

    }
 }
function error_handler($errno,$errstr,$errorfile,$errline,$errtext){
    throw new ErrorHandlers($errno,$errstr,$errorfile,$errline,$errtext);

}
function exception_handler(Exception $e)
{    
   $errors = array(
  E_ERROR          => 'error',
  E_WARNING        => 'warning',
  E_PARSE          => 'parsing error',
  E_NOTICE          => 'notice',
  E_CORE_ERROR      => 'core error',
  E_CORE_WARNING    => 'core warning',
  E_COMPILE_ERROR  => 'compile error',
  E_COMPILE_WARNING => 'compile warning',
  E_USER_ERROR      => 'user error',
  E_USER_WARNING    => 'user warning',
  E_USER_NOTICE    => 'user notice');
       
   echo $errors[$e->getCode()].': '.$e->getMessage().' in '.$e->getFile().
       ' on line '.$e->getLine()."\n";
   echo $e->getTraceAsString();
}

trigger_error('5do8'); 
try{  
    $i  = 1/0;  
} catch(ErrorHandlers  $e)  {  
       echo  "发生错误."; //可以输出错误行
       $e->Message();
}  


  而后,注意了,如果您第一次(或者重新)加载的话,就加上:
set_error_handler('error_handler');
set_exception_handler('exception_handler');


  如果不是上述情况,就不要加了,否则会出现

   Exception thrown without a stack frame in Unknown on line 0

  因为error_handler是anto_flush的。

  在一个exception里面不能调用其他的exception。有2条普遍适用的规则,如下:
1:不要在一个Exception里面执行另一个Exception
 2:不要在析构函数里面执行Exception.


  
  restore_exception_handler();是可以保存exception柄的,注意,执行error以后就会有Exception的了。

  最后,加上一个完整的例子:CallError.php   <?

共7页: 上一页 [1] [2] [3] 4 [5] [6] [7] 下一页
热点教程
实用信息推荐
网站地图 - 最新教程 - RSS订阅 - 版权所有 - 广告服务 - 友情连接 - 联系我们