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 相关文章推荐
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
php动态生成版权所有信息的方法
Mar 24 PHP
php 多文件上传的实现实例
Oct 23 PHP
php从数据库中读取特定的行(实例)
Jun 02 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
详解PHP中curl_multi并发的实现
Jun 08 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
Cookie跨域问题解决方案代码示例
Nov 24 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
php变量范围介绍
2012/10/15 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
小程序实现抽奖动画
2020/04/16 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python编写检测数据库SA用户的方法
2014/07/11 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python实现的栈(Stack)
2018/01/26 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
高中毕业自我评价
2014/02/08 职场文书
白酒市场营销方案
2014/02/25 职场文书
行政专员的岗位职责
2014/03/10 职场文书
党员公开承诺书范文
2014/03/25 职场文书
建党伟业电影观后感
2015/06/01 职场文书
教师节班会主持词
2015/07/06 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
MongoDB支持的索引类型
2022/04/11 MongoDB