PHP中的异常处理

网站错误的结果

    • E_ALL   所有的错误
    • E_ERROR  致命的运行错误(程序不能运行错误)
    • E_WARNING 警告级别的错误(程序还能继续执行)
    • E_NOTICE 提示级别的错误
    • E_STRICT  编码标准化警告
    • 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配置文件中display_errors选项,设置on显示错误,设置为off为不显示错误.
    • 修改php配置文件中的error_reporting选项,可以定义任意类型的错误输出或者不输出
    • 使用error_reporting()函数,可以和配置文件中的error_reporting选项实现相同效果,设置的值也是一样
      • 例子:error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING)

让该看到的人看到错误

    • 第一步:关闭配置文件中display_errors设置为off
    • 第二步:设置存储错误的类型,设置配置文件中error_reporting选项,指定需要存储的错误类型
    • 第三步:开启错误日志记录开关, 设置log_errors=on
    • 第四步:设置错误日志记录的地点
      • error_log=syslog 记录错误到系统日志中


自定义处理错误的方式

set_error_handker();设置一个用户自定义的错误处理函数

参数1:传入一个回调函数

参数2:可选参数,设置错误的类型

<?php

   set_error_handler('myError');
      //使用函数控制错误的输出或者不输出
   echo $name;

   mysqli_connect('localhost','root','daxiong');

      function myError($error_no,$error_str,$error_file,$error_line){
             echo '当前的错误号:'.$error_no.'<br/>当前错误内容:'.$error_str.'<br/>当前错误的错误文件在:'.$error_file.'<br/>当前错误的行:'.$error_line;
      }

猜你喜欢

转载自www.cnblogs.com/vijarye/p/9011888.html
今日推荐