位置: 编程技术 - 正文

PHP的全局错误处理详解(php全局函数)

编辑:rootadmin

推荐整理分享PHP的全局错误处理详解(php全局函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php提供三种全局变量的定义方法,分别是?,php提供三种全局变量的定义方法,分别是?,php常用的8个超全局变量,php常用的8个超全局变量,php全局变量和局部变量,php提供三种全局变量的定义方法,分别是?,php常用的8个超全局变量,php全局变量有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

本文目的

PHP的全局错误处理,在开发项目的时候很有用,可以帮助开发者快速定位一些问题,提高工作效率。默认情况下,全局错误会直接输出,但是最近开发时使用的一个框架库对全局错误处理进行了设定,导致很多错误信息没有输出,在定位问题上有一定的耗时。所以,研究了一下此库的实现,发现它设定了error_reporting和set_error_handler,导致此现象。现在记录一下这两个函数的用法,作为备忘录。

背景

PHP没有类型检测,开发人员比较容易输入错误单词,引起致命错误,最终导致脚本停止执行。如果这个时候,没有得到任何错误消息,那么会是一件很痛苦的事情。你不得不从脚本的第一行代码开始调试,在成千上万行的代码中不断的print或者echo,直到定位到这个输错的单词。然后,有不得不原路返回,将先前添加的print或echo全部删除。这时一件及其枯燥乏味的工作。

一般情况

正常情况下,php会将致命错误直接输出,会将错误的出处(文件地址,行号)和原因等输出,这样,开发着可以很方便的定位到问题。

但是有些时候,可能由于php.ini的设置问题,可能是第三方框架配置的问题,导致这些信息没有输出,那么此时,必须学会自己设置相关参数,输出这些错误信息,帮助快速定位问题。

error_reporting

PHP的全局错误处理详解(php全局函数)

error_reporting是一个php的全局配置参数,在php.ini中。用于配置错误输出级别,参数是比特位,可以用来设置错误输出的级别,下面是从php.ini中copy出来的信息:

默认情况下,php会输出所有错误信息,除了notice。同样,php标准函数中提供了名称相同的函数error_reporting(int $level),用于在php脚本中,完成同样的功能。这样将不会影响其他程序。值得注意的是,$level为0的时候是关闭错误输出,也就是任何错误都不会输出。

set_error_handler

php的默认错误处理是将消息输出。但是,有时候需要定义一些其他操作,这时就需要自定义错误处理函数。php提供内置函数set_error_handler可以帮助我们注册自己的错误处理函数。函数原型如下:

mixed set_error_handler ( callback $error_handler [, int $error_types = E_ALL | E_STRICT ] )

值得注意的是,即使注册了错误处理函数,默认的行为仍然会执行,也就是错误出现时,仍然会输出错误信息,所以需要在程序中显示的将错误级别设置为0,然后在注册自己的的错误处理函数。这种方式,在生产环境下,尤其重要,因为即时出错,敏感内部错误信息也不会暴露给潜在的恶意用户。还有很重要的一点需要指出,自定义错误处理函数不能处理fatal error(比如编译错误)。下面是一个使用自定义错误处理函数的列子:

执行此脚本可以得到下面的输出:

可以看到,最后的“new NoExistClass()”的异常,没有被自定义的错误处理函数捕获。

最后,捎带提一下,set_exception_handler注册顶层的异常处理,在web一用中,可以设定一下,然后统一的跳转到错误处理页面。

PHP简单实现生成txt文件到指定目录的方法 本文实例讲述了PHP简单实现生成txt文件到指定目录的方法。分享给大家供大家参考,具体如下:php//fopen第二个参数可以是以下四个,区别就是是清空内容

PHP实现的线索二叉树及二叉树遍历方法详解 本文实例讲述了PHP实现的线索二叉树及二叉树遍历方法。分享给大家供大家参考,具体如下:phprequire'biTree.php';$str='ko#be8#tr####acy#####';$tree=newBiTree($str);$tr

使用ltrace工具跟踪PHP库函数调用的方法 本文实例讲述了使用ltrace工具跟踪PHP库函数调用的方法。分享给大家供大家参考,具体如下:可能大家已经很熟悉使用strace来跟踪系统调用,今天介绍

标签: php全局函数

本文链接地址:https://www.jiuchutong.com/biancheng/293658.html 转载请保留说明!

上一篇:php构造函数与析构函数(php 构造方法)

下一篇:PHP简单实现生成txt文件到指定目录的方法(php如何生成html)

  • 收到汇算清缴退回企业所得税分录
  • 证书挂靠要申报个人所得税年度汇算吗
  • 一般纳税人没有开票要交税吗
  • 对外支付人民币存在残缺污损的问题
  • 企业所得税是含税价还是不含税价
  • 税控是干什么用的
  • 建筑业的增值税税率是多少
  • 实收资本利息收入可以资本化
  • 社保稳岗返还计算公式
  • 一般纳税人账务核算不健全如何税务处理
  • 无息借款账务处理
  • 税控盘当月不抵扣怎么申报
  • 原材料的入账价值包括保险费吗
  • 以前年度损益缴纳的税款在企业所得税中怎么表示
  • 企业注销资产负债表年初数要调整吗?
  • 成品油认证步骤
  • 个人所得税核定征收税率表
  • 转账支票背书转让样本
  • 非营利性代收代付费用会计处理怎么做?
  • 年收入超过12万什么时候申报
  • 企业租车费用怎么处理方法
  • 电子营业执照可以开通抖音小店吗
  • 农业企业销售林木是否要交印花税?
  • 税收编码选错了,发票已经开出去几个月了,还有影响吗
  • 房租发票进项税可以抵扣吗
  • 房地产企业销售现房是否预缴增值税
  • 学生兼职需要交什么税
  • 未及时申报个税的理由
  • 增值税专用发票怎么开
  • 建筑行业简易征收税率是5%吗?
  • 持有至到期投资是什么意思
  • 收入确认和成本的关系
  • 分公司是小微企业总公司是一般纳税人,如何做合并报表
  • tracert命令的作用及用法
  • 如何把电脑上锁屏密码
  • 金税盘服务费怎么申报抵扣
  • phpstorm ftp
  • php目录操作
  • 卷曲的蕨菜叶怎么吃
  • php imagettftext()函数
  • html扫码功能
  • 真正的出道仙谁来封
  • 印花税计提比例是多少
  • 施工水电费账务处理流程
  • 代收代付业务
  • 企业商品库存周期是多久
  • 什么是财务报表分析,方法有哪些
  • 运输发票抵扣进项税额
  • 原材料盘亏属于自然损耗
  • 揭秘如何投屏纽约时代广场
  • 跨境收入免增值税需做备案吗
  • 企业微信开通微信支付
  • 小规模纳税人的税率是多少
  • 本年度发票一定要收回吗
  • 计提个人所得税会计分录怎么做账
  • 土地回收补偿费怎么算
  • 贴现公司贴现合法吗
  • 未分配利润核销不良贷款
  • 辞退补偿金入什么科目
  • sqlserver 锁表语句
  • sql的查询分析器
  • windows server 2008 日志文件在哪
  • 电脑更新windows11后开机一黑屏
  • win7无法运行
  • ubuntu右上角没有键盘
  • 苹果电脑mac系统键盘无法找到
  • Win RT 8.1 Update 3怎么提前更新安装使用?
  • win10回收站文件在哪里
  • win8 系统设置
  • javascript编写函数
  • jquery页面跳转的方法
  • javascript常用类型
  • js变量作用域
  • js闭包实现
  • android_sqlite开发入门
  • 风力发电税收优势分析
  • 目前光伏太阳能组件产量最高的国家是( )
  • 辽宁税务遴选
  • 农用三轮车免征增值税文件
  • 江苏社保退工办理流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设