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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
PHP sprintf()函数用例解析
May 18 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
详细解读PHP中接口的应用
Aug 12 PHP
php加密解密字符串示例
Oct 13 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
php使用crypt()函数进行加密
Jun 08 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
土建施工员岗位职责
2014/07/16 职场文书
就业协议书怎么填
2014/09/15 职场文书
报到证办理个人委托书
2014/10/06 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
用电申请报告范文
2015/05/18 职场文书
怎样写家长意见
2015/06/04 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers