视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php中错误处理操作实例分析
2020-11-27 14:43:10 责编:小采
文档

本文实例讲述了php中错误处理操作。分享给大家供大家参考,具体如下:

错误触发

有2种触发:

系统触发: E_NOTICE:提示性错误,比如使用不存在的变量或常量
E_WARNING:警告性错误,比如include载入一个不存在的文件
E_ERROR:致命错误,导致程序无法执行后续语句,比如调用一个不存在的函数

自定义触发:
语法形式:trigger_error("错误提示信息内容",3种用户错误代号之一);
其中触发了用户的致命错误(E_USER_ERROR),也会终止程序的后续执行

错误显示

是否显示错误报告(display_errors)

有2种来设定是否显示:

1.在php.ini文件中,设定display_erros的值,为on(显示),或为off(不显示),开发阶段应该为on,显示错误信息

2.直接在php脚本文件中设定ini_set("display_errors",0);//不显示错误报告,1为显示
显示哪些级别的错误报告(error_reporting)
前提是"display_errors"设置为on(或1),表示可以显示
1.在php.ini文件中 error_reporting=E_ALL | E_STRICT这个值代表所有错误

  • 在当前的脚本代码中设置
  • ini_set("error_reporting",E_NOTICE); //就显示该一个级别的错误
    ini_set("error_reporting",E_NOTICE| E_WARNING); //显示该2个级别的错误
    //禁用错误报告
    error_reporting(0);
    //报告运行时错误
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    //报告所有错误
    error_reporting(E_ALL);
    
    

    错误日志记录

    错误日志其实就是错误报告,只是会写入文件中,此时就称为错误日志

    是否记录log_errors

    php.ini中:log_errors=on或off 脚本中:ini_set("log_erros",1);或0
    补充: ini_set("php配置项",值);//用于脚本中设置php.ini中某项的值
    $v=ini_get("php配置项");//用于获取php.ini中某项的值

    记录到哪里error_log

    一般就只有2个写法:

    1.直接写一个文件名,系统会自动在每个文件夹下都建立该文件名,并用其记录该文件夹下的所有网页文件发生的错误信息ini_set("error_log","my_error.txt");//记录到该文件

    2.使用一个特殊的名字"syslog",则所有的错误信息都会记录到系统的"日志文件中".系统日志文件在这里:控制面板》管理工具》事件查看器》window日志》应用程序:

    ini_set("error_log","syslog");//记录到系统日志中

    自定义错误处理器

    让系统不要去处理错误了,完全由开发者对错误进行处理:显示和记录

    第一步:设定要用于处理错误的函数名:set_error_handler("f1");

    第二步:去定义该函数function f1() {这里可以写任意代码,正常去显示错误报告,和记录}

    例:

    set_error_handler("my_error_handler");
    //定义该函数,需要定义4个形参分别代表$errCode:代表错误代号(级别) $errMsg:代表错误//信息内容 $errFile:代表错误的文件名 $errLine:代表错误的行号,一旦发生错误自动调用
    function my_error_handler($errCode,$errMsg,$errFile,$errLine) {
     $str="";
     $str .="<p><font color='red'>大事不好,发生错误:</font>";
     $str .="<br />错误代号为:".$errCode;
     $str .="<br />错误内容为:".$errMsg;
     $str .="<br />错误代号为:".$errFile;
     $str .="<br />错误代号为:".$errLine;
     $str .="<br />发生时间为:".date("Y-d-m H:i:s");
     $str .="</p>";
     echo $str; //
    输出该构建完整的错误处理结果,也可以将改内容写到某个文件中去 }

    异常抛出

    function checkAge($age){
     if($age>100) throw new Exception('年龄不能大于100');
     echo '年龄符合规范';
    }
    //如果年龄大于100,抛出异常
    try{
     checkAge(200);
    }catch(Exception $e){
     echo $e->getMessage();
    }
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP错误与异常处理方法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    下载本文
    显示全文
    专题