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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
php中cookie的作用域
Mar 27 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
php代码审计比较有意思的例子
May 07 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 PHP
PHP pthreads v3使用中的一些坑和注意点分析
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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
Python 硬币兑换问题
2019/07/29 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
如何将字串String转换成整数int
2015/02/21 面试题
优秀员工自荐书范文
2013/12/08 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
迁户口计划生育证明
2014/10/19 职场文书
英语教师个人工作总结
2015/02/09 职场文书
小学国庆节活动总结
2015/03/23 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
Java实现多文件上传功能
2021/06/30 Java/Android