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 相关文章推荐
模仿OSO的论坛(一)
Oct 09 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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
PHP 地址栏信息的获取代码
2009/01/07 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
提高php编程效率技巧
2015/08/13 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
jquery 插件 人性化的消息显示
2008/01/21 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python中join和split用法实例
2015/04/14 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
致跳高运动员广播稿
2014/01/13 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
优秀广告词大全
2014/03/19 职场文书
生物技术专业求职信
2014/06/10 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
纪检监察立案决定书
2015/06/24 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书