欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

程序员文章站 2022-06-12 16:39:12
...
PHP 错误与异常 笔记与总结(17 )像处理异常一样处理 PHP 错误

有两种方式可以在 PHP 中以异常的方式处理错误:

① PHP 内置的 ErrorException 类(也是 Exception 类的子类)

 1 php 2 function exception_error_handler($errno, $errstr, $errfile, $errline){ 3     throw new ErrorException($errstr, 0, $errno, $errfile, $errline); 4 } 5  6 set_error_handler('exception_error_handler'); 7  8 try{ 9     //出发异常10     echo gettype();11 }catch(Exception $e){12     echo $e->getMessage();13 }

输出:

PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

用过这种方式把警告信息以异常信息输出出来了。

自定义异常类来处理 PHP 中的错误

 1 php 2 class ErrorToException extends Exception{ 3     public static function handler($errno, $errstr){ 4         throw new self($errstr, $errno); 5     } 6 } 7  8 set_error_handler(array('ErrorToException', 'handler')); 9 10 try{11     //触发错误,未定义的变量,产生通知级别的错误12     echo $test;13 }catch(ErrorToException $e){14     echo $e->getMessage();15 }

输出:

PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

还可以使用 set_error_handler 设定错误级别:

 1 php 2 class ErrorToException extends Exception{ 3     public static function handler($errno, $errstr){ 4         throw new self($errstr, $errno); 5     } 6 } 7  8 set_error_handler(array('ErrorToException', 'handler')); 9 //设定错误级别,例如只有警告级别的错误才以异常的形式进行捕获10 set_error_handler(array('ErrorToException', 'handler'), E_USER_WARNING|E_WARNING);11 12 try{13     //触发错误,未定义的变量,产生通知级别的错误14     echo $test;15 }catch(ErrorToException $e){16     echo $e->getMessage();17 }

输出:

PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

也就是说,通知级别的错误不交给自定义异常类来处理。

trigger_error 也能触发异常:

 1 php 2 header('content-type:text/html; charset=utf-8'); 3  4 class ErrorToException extends Exception{ 5     public static function handler($errno, $errstr){ 6         throw new self($errstr, $errno); 7     } 8 } 9 10 set_error_handler(array('ErrorToException', 'handler'));11 //设定错误级别,例如至哟哟警告级别的错误才以异常的形式进行捕获12 set_error_handler(array('ErrorToException', 'handler'), E_USER_WARNING|E_WARNING);13 14 try{15     //触发错误,未定义的变量,产生通知级别的错误16     echo $test;17     echo '
';18 //gettype();19 echo '
';20 trigger_error('test', E_USER_WARNING);21 }catch(ErrorToException $e){22 echo '异常';23 echo $e->getMessage();24 }

输出:

PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常
  • 专题推荐

    作者信息
    PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常

    认证0级讲师

    推荐视频教程
  • PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常javascript初级视频教程
  • PHP 异常与错误 笔记与总结(17 )像处理错误一样处理 PHP 异常jquery 基础视频教程
  • 视频教程分类