错误的级别

1. notice:提示2. warning:警告3. error:致命错误
  • 1
  • 2
  • 3
  • 4
  • 5

注:notice和warning报错后继续执行,error报错后停止

错误的提示方法

方法一:显示在浏览器上

方法二:记录在日志中执行

错误处理有关的配置(在php.ini中)

1. error_reporting = E_ALL:报告所有的错误
2. display_errors = On:将错误显示在浏览器上
3. log_errors = On:将错误记录在日志中
4. error_log=’地址’:错误日志保存的地址

项目开发的两个模式:

开发模式:错误显示在浏览器上,不要记录在日志中
运行模式:错误不显示在浏览器上,记录是日志中

例题:

<?php
$debug=false;      //true:开发模式  false:运行模式
ini_set('error_reporting',E_ALL); //所有的错误有报告
if($debug){ini_set('display_errors','on');  //错误显示是浏览器上ini_set('log_errors','off'); //错误不显示在日志中
}else{ini_set('display_errors','off');ini_set('log_errors','on');ini_set('error_log','./err.log');  //错误日志保存的地址
}//测试
echo $num;

自定义错误处理

通过trigger_error产生一个用户级别的 error/warning/notice 信息
注意:用户级别的错误的常量名中一定要带有USER

<?php
$age=100;
if($age>80){//trigger_error('年龄不能超过80岁');  //默认触发了notice级别的错误//trigger_error('年龄不能超过80岁',E_USER_NOTICE); //触发notice级别的错误//trigger_error('年龄不能超过80岁',E_USER_WARNING);trigger_error('年龄不能超过80岁',E_USER_ERROR);   //错误用户error错误
}

注册错误处理函数,只要有错误就会自动调用错误处理函数:

定义错误处理函数:

function error() {echo '这是自定义错误处理';
}
set_error_handler('error');   //注册错误处理函数,只要有错误就会自动的调用错误处理函数
echo $num;

自定义错误处理函数

/**
*自定义错误处理函数
*@param $errno int 错误类别
*@param $errstr string 错误信息
*@param $errfile string 文件地址
*@param $errline int 错误行号
*/
function error($errno,$errstr,$errfile,$errline) {switch($errno){case E_NOTICE:case E_USER_NOTICE:echo '记录在日志中,上班后在处理<br>';break;case E_WARNING:case E_USER_WARNING: echo '给管理员发邮件<br>';break;case E_ERROR:case E_USER_ERROR:echo '给管理员打电话<br>';break;}echo "错误信息:{$errstr}<br>";echo "错误文件:{$errfile}<br>";echo "错误行号:{$errline}<br>";
}
set_error_handler('error');
echo $num;//运行结果
记录在日志中,上班后在处理
错误信息:Undefined variable: num
错误文件:F:\wamp\www\4-demo.php
错误行号:50

PHP---错误处理(error)相关推荐

  1. Spring Boot项目错误:Error parsing lifecycle processing instructions

    pom.xml文件错误:Error parsing lifecycle processing instructions 解决方法:清空.m2/repository下的所有依赖文件,重新下载即可解决该问 ...

  2. 错误:Error #2032解决方案

    问题: Error #2032错误要访问外部数据,必须信任此文件. 现象: 要访问外部数据,必须信任此文件. 对于 PDF 文件,在 Adobe Reader 中,单击"Edit" ...

  3. R语言ggplot2可视化在散点图中的每个点上绘制两个错误条:常见的是垂直错误条,它对应于Y值点上的错误(error bar),添加与X轴(水平)相关的错误条(error bar)

    R语言ggplot2可视化在散点图中的每个点上绘制两个错误条:常见的是垂直错误条,它对应于Y值点上的错误(error bar),添加与X轴(水平)相关的错误条(error bar) 目录

  4. R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例

    R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码.tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例 ...

  5. Xamarin+vs2010部署错误:error MSB6004: 指定的任务可执行文件位置\sdk\\tools\zipalign.exe”无效...

    好不容易配好了Xamarin和vs2010,也搞好了GenyMotion的虚拟机配置,开始调试的时候又报出了这样的错误: error MSB6004: 指定的任务可执行文件位置"C:\Use ...

  6. MDK:assert_param函数未定义的错误:Error: L6218E

    今天使用奋斗stm32开发板,编译程序时 出现了一下错误,网上有很多解决方案,可是一直没解决, 在链接过程中出现assert_param函数未定义的错误:Error: L6218E: Undefine ...

  7. 安装vs2008中文时出现错误Write error in the file

    安装vs2008中文时出现错误Write error in the file VS2008TeamSuite90DayTrialCHSX1429243.iso. Probably the disk i ...

  8. 编译错误 fatal error C1010: unexpected end of file while looking for precompiled header directive

    VC6.0在编译的时候出现这种错误 fatal error C1010: unexpected end of file while looking for precompiled header dir ...

  9. yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc

    我在某个 Angular 项目文件下执行 npm install 命令时,遇到如下错误: Error: EPERM: operation not permitted, open C:\Users\i0 ...

  10. kubeadm join时出现错误:[ERROR Port-10250]: Port 10250 is in use [ERROR FileAvailable--etc-kubernetes-pki

    kubeadm join时出现错误:[ERROR Port-10250]: Port 10250 is in use:[ERROR FileAvailable--etc-kubernetes-pki- ...

最新文章

  1. linux 网络传输压塑文件,萌新的Linux学习之路(十一)文件压缩传输
  2. python开发需要掌握哪些知识-Python后端开发如何入门,要学习那些系统性的知识?...
  3. 公开课视频-《第03章 部署-IT基础架构》-大企业云桌面部署实战-在线培训-视频(奉献)...
  4. wordpress 后台慢_建站经验-wordpress用户注册收不到验证邮件
  5. adb 51 android.rules,使用51-android-rules解决ubuntu上不识别 android手机的问题
  6. MySQL深入02-DML之Select查询
  7. 通俗理解动态库与静态库区别
  8. VMware8虚拟机安装教程
  9. 全网最全解析,少儿编程到底学的是什么?
  10. Arranging Heaps
  11. 打印机如何双面打印、复印?
  12. git/github教程
  13. 【已解决】RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
  14. fastreport 横向打印多列
  15. 项目实战:ASP.NET:B/S结构 个人空间相册、照片上传下载系统
  16. 南怀瑾:如何静坐(附视频)
  17. 工厂方法模式(雷锋依然在人间)
  18. 漂流瓶php源码,微信小程序之仿微信漂流瓶
  19. 转录因子和组蛋白修饰研究思路 | DNA蛋白互作专题
  20. CW3002F与CW3002G参数对比|CW3002F与CW3002G方案设计差异|CW3002G直接替代CW3002F

热门文章

  1. 『ACM-算法-lowbit』算法竞赛进阶指南--lowbit运算,找到二进制下所有是1的位
  2. Python+Opencv实现多种形状的检测
  3. 小波阈值去噪法基础理论
  4. git stash操作
  5. linux kernel: defconfig和.config
  6. 世界各地奇葩讨债方法,竟百发百中
  7. 《拯救人类》:很有可能改变人类历史进程的书
  8. 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
  9. Power of Three
  10. python打乱list_超实用!每 30 秒学会一个 Python 小技巧,GitHub 标星 5300!