PHP异常与错误笔记与总结(17)像处理错误一样处理PHP异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP异常与错误笔记与总结(17)像处理错误一样处理PHP异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2239字,纯文字阅读大概需要4分钟。
内容图文
![PHP异常与错误笔记与总结(17)像处理错误一样处理PHP异常](/upload/InfoBanner/zyjiaocheng/226/76eeb86768154a82bbba2d6ae0e2f9d5.jpg)
有两种方式可以在 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 中的错误
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 }
输出:
还可以使用 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 }
输出:
也就是说,通知级别的错误不交给自定义异常类来处理。
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异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。