当前位置:主页 > php教程 > php中错误处理操作实例分析

php中错误处理的实例操作讲解

发布:2019-11-21 23:05:25 105


我们帮大家精选了相关的编程文章,网友桓弘毅根据主题投稿了本篇教程内容,涉及到php、错误处理、php中错误处理操作实例分析相关内容,已被889网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

php中错误处理操作实例分析

本文实例讲述了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+mysql查询实现无限下级分类树输出

    发布:2020-02-14

    这篇文章主要介绍了php+mysql查询实现无限下级分类树输出,结合实例形式分析了php+MySQL查询实现的树状分类输出功能,涉及php数据库查询与数组遍历等相关操作技巧,需要的朋友可以参考下


  • 详解PHP设计模式中工厂模式和单例模式

    发布:2020-03-01

    这篇文章主要介绍了PHP设计模式之工厂模式与单例模式,简单介绍的工厂模式与单例模式的功能,并结合实例形式分析了工厂模式及单例模式的实现与应用,需要的朋友可以参考下


  • PHP实现微信申请退款功能的实例代码

    发布:2020-07-16

    这篇文章主要为大家详细介绍了PHP实现微信申请退款功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下方法


  • thinkPHP5框架captcha验证码配置及验证操作详解

    发布:2019-07-01

    这篇文章主要介绍了tp5(thinkPHP5框架)captcha验证码配置及验证操作,结合实例形式分析了基于thinkPHP5框架的captcha验证码配置及验证操作具体步骤与相关注意事项,需要的朋友可以参考下


  • php中CodeIgniter框架主从数据库配置方法

    发布:2019-06-05

    这篇文章主要介绍了php框架CodeIgniter主从数据库配置方法,结合实例形式分析了CodeIgniter框架主从数据库配置方法、模型model与控制器调用操作技巧以及相关注意事项,需要的朋友可以参考下


  • php从数据库中读取特定的行的方法

    发布:2019-06-21

    下面小编就为大家带来一篇php从数据库中读取特定的行(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • PHP中单双引号用法误区

    发布:2020-06-04

    PHP中单双引号常常会给人带来很多的误区,其中双引号还有些小隐患,下面是小编给大家整理的,需要的可以参考。


  • PHP中加速、缓存扩展的区别及用法整理

    发布:2020-02-09

    这篇文章主要介绍了PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下


网友讨论