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


Posted in PHP onAugust 23, 2019

本文实例讲述了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这个值代表所有错误

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

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

  • 在当前的脚本代码中设置
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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
PHP 类商品秒杀计时实现代码
May 05 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
php获得用户ip地址的比较不错的方法
Feb 08 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
php实现微信发红包
Dec 05 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
php中实现进程锁与多进程的方法
Sep 18 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 #PHP
php简单检测404页面的方法示例
Aug 23 #PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 #PHP
PHP Primary script unknown 解决方法总结
Aug 22 #PHP
php用wangeditor3实现图片上传功能
Aug 22 #PHP
PHP生成zip压缩包的常用方法示例
Aug 22 #PHP
Laravel 实现数据软删除功能
Aug 21 #PHP
You might like
html中select语句读取mysql表中内容
2006/10/09 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
详解在Python程序中使用Cookie的教程
2015/04/30 Python
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
python常用函数详解
2016/09/13 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python+flask实现API的方法
2018/11/21 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
天网工程实施方案
2014/03/26 职场文书
团队会宣传标语
2014/10/09 职场文书
家庭困难证明
2014/10/12 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB