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 相关文章推荐
PHP 引用文件技巧
Mar 02 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
php字符集转换
Jan 23 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
PHP7匿名类的用法示例
2019/04/05 PHP
json 定义
2008/06/10 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Android分包MultiDex策略详解
2017/10/30 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
《沉香救母》教学反思
2014/04/19 职场文书
社区活动总结报告
2014/05/05 职场文书
经营目标管理责任书
2014/07/25 职场文书
党课心得体会范文
2014/09/09 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
群众路线调研报告范文
2014/11/03 职场文书
医院见习报告范文
2014/11/03 职场文书
2014年保密工作总结
2014/11/22 职场文书
公司2014年度工作总结
2014/12/10 职场文书
公司联欢会主持词
2015/07/04 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
gojs实现蚂蚁线动画效果
2022/02/18 Javascript