10.错误处理模块

错误处理模块

1. 认识错误

  • E_ALL - 所有的错误
  • E_ERROR - 致命性的错误(下面代码不会执行了)
  • E_WARNING - 警告性错误(报警,但能运行)
  • E_NOTICE - 提示级别的错误(轻微的错误)
  • E_STRICT - 编码标准化警告(编译时)
  • E_CORE_ERROR - PHP启动时初始化过程中错误
  • E_CORE_WARNING - PHP启动时初始化过程中的警告
  • E_COMPILE_ERROR - 编译时的致命错误c
  • E_COMPILE_WARNING - 编译时的警告错误
  • E_USER_ERROR - 用户自定义的致命错误
  • E_USER_WARNING - 用户自定义的警告
  • E_USER_NOTICE - 用户自定义的提示

2.错误的三个级别

  • error 致命错误 会终止程序运行
  • waring 警告错误 不会终止程序运行
  • notice 提示 算不上错误

3.解决错误

让该看到的人看到,不该看到的人不让他看

  1. 让不该看的的人开不到(老板,黑客,用户)

    • 使用错误抑制符@(只能单行屏蔽,且效率低)

    • 修改PHP文件中的display_errors选项,设置为On显示错误,设置为Off不显示错误(一刀切)

    • 修改error_reporting的配置image-20220415112753972

    • 使用 error_reporting函数,与上边设置的值一样

      error_reporting(E_ALL & ~ E_WARING & ~ E_NOTICE)  // ~ 除了 & 并且
      
    1. 让该看到的人看到(开发人员)

      image-20220415121619423

    2. 比较灵活的错误处理方式 set_error_handler() 用户接管处务处理方式

      image-20220415121713493

      PS:设置了之后系统就不会报相应错误了(他也会屏蔽错误)

      image-20220415121818233

      <?php
      // 设置,但要写在最上边
      set_error_handler('doError');  // 回调函数
      echo $name;
      include ('./nihai.php');
      
      // 设置回调函数
      function doError($error_no, $error_str, $error_file, $error_line) {
          $error = '错误级别: ' . $error_no . '<br/>' . '错误信息: ' . $error_str . '<br/>' . '错误文件: ' . $error_file. '<br/>'. '错误行号: ' . $error_line . '<hr/>';
          echo $error;
      }
      ?>
      
posted @   VarFa  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示