设为首页 收藏本站
查看: 215|回复: 0

[经验分享] php 错误处理

[复制链接]

尚未签到

发表于 2017-3-20 10:37:56 | 显示全部楼层 |阅读模式
一、错误的种类

查看源码复制到剪切板打印帮助
; E_ALL         //-所有的错误和警告,(不包含E_STRICT).  
; E_ERROR       //-致命的运行时错误  
; E_RECOVERABLE_ERROR   //- 几乎致命的运行时错误  
; E_WARNING     //- 运行时的警告(非致命错误)  
; E_PARSE       //-编译时解析错误  
; E_NOTICE      //- 运行时的提示,这些提示常常是代码中的bug引起的。  
; E_STRICT      //- 运行时提示,能够给于PHP建议,以改善你的代码。  
; E_CORE_ERROR      //- PHP 初始化启动过程中的致命错误。  
; E_CORE_WARNING    //- PHP 初始化启动过程中的非致命错误。  
; E_COMPILE_ERROR   //- 致命的编译错误。  
; E_COMPILE_WARNING //– 编译错误(非致命的错误)。  
; E_USER_ERROR      //- 用户错误信息。  
; E_USER_WARNING    //- 用户警告信息。  
; E_USER_NOTICE     //-用户提示信息。;  
二、php.ini 配置错误显示与否

查看源码复制到剪切板打印帮助
//1、错误消息输出到用户端(调试代码时候,打开这项更方便)  
display_errors = ON  
  
//2、错误消息将不会输出到用户端(最终发布给用户时记得改成off)  
display_errors = OFF  
三、php.ini 错误输出配置推荐

查看源码复制到剪切板打印帮助
//1、表示输出所有的信息。  
error_reporting  = E_ALL   
  
//2、表示输出所有的错误,除了提示。  
error_reporting  = E_ALL & ~E_NOTICE   
  
//3、表示输出所有的 ERROR  信息。  
error_reporting  = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR   
四、php 中调整整错误级别

1、错误级别列表

值   错误代码  
1   E_ERROR  
2   E_WARNING  
4   E_PARSE  
8   E_NOTICE  
16  E_CORE_ERROR  
32  E_CORE_WARNING  
64  E_COMPILE_ERROR  
128 E_COMPILE_WARNING  
256 E_USER_ERROR  
512 E_USER_WARNING  
1024    E_USER_NOTICE  
2047    E_ALL  
2048    E_STRICT  
4096    E_RECOVERABLE_ERROR  
2、使用 error_reporting ( [int level] ) 调整错误级别

例子

查看源码复制到剪切板打印帮助
error_reporting(0); //关闭所有错误显示  
  
error_reporting(E_ERROR | E_WARNING | E_PARSE);  
  
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);  
  
error_reporting(E_ALL ^ E_NOTICE); //php.ini错误值。  
  
error_reporting(E_ALL); //显示所有错误信息。  
五、自定义错误函数处理

1、使用 set_error_handler()函数向系统声明错误处理函数

2、使用 trigger_error()函数,可以触发一个 error

例子

查看源码复制到剪切板打印帮助
function myErrorHandler($errno, $errstr, $errfile, $errline)  
{  
    switch ($errno) {  
        case E_USER_ERROR:  
            echo "<b>My ERROR</b> [$errno] $errstr\n";  
            echo "  Fatal error in line $errline of file $errfile";  
            echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")\n";  
            echo "Aborting...\n";  
            exit(1);  
            break;  
      case E_USER_WARNING:  
            echo "<b>My WARNING</b> [$errno] $errstr\n";  
            break;  
      case E_USER_NOTICE:  
            echo "<b>My NOTICE</b> [$errno] $errstr\n";  
            break;  
      default:  
            echo "Unknown error type: [$errno] $errstr\n";  
            break;  
      }  
}  
  
//定义错误处理函数.  
set_error_handler("myErrorHandler");   
  
//假设出现了负数的年龄,这明显是错误的。  
$age = -100;   
  
if ($age < 0) {  
    //触发错误;  
    trigger_error("age you input  must >= 0", E_USER_ERROR);  
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-352195-1-1.html 上篇帖子: PHP超级配置模块 下篇帖子: PHP preg_replace
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表