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中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
PHP 转义使用详解
Jul 15 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
php生成动态验证码gif图片
Oct 19 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
使用php实现截取指定长度
2013/08/06 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
jquery.validate使用详解
2016/06/02 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
Python标准库之sqlite3使用实例
2014/11/25 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python读取Excel表格文件的方法
2019/09/02 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
python中实现栈的三种方法
2020/12/19 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
最新自我评价范文
2013/11/16 职场文书
投资协议书范本
2014/04/21 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
初中班级口号
2014/06/09 职场文书
护士找工作求职信
2014/07/02 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书