php自定义错误处理器

假如您是php老手,当然知道当php脚本出错时发生了什么事情。此时php解析器将在屏幕上给出错误信息,如 fatal error: call to undefined function on line 19 –,因此程序在此处终止。这个信息会吓到客户,他可能立即打电话和你进行咨询。

php自定义错误处理器

幸运的是,这里有解决办法。PHP拥有内置工具,可以让开发人员捕捉脚本错误然后将它们转到自定义的错误处理器。此时则可以对处理器进行编程显示更多关于错误的具体信息。(推荐学习:PHP编程从入门到精通)

还可以将错误写入文件或数据库以采取补救措施。有时候还可以对处理器编写程序忽略错误消息。

本文中,我将阐述如何使用PHP的错误处理API构建用户自定义的错误处理器,并且说明如何以简单而友好的方式显示和治理脚本的错误信息。

错误类型和报告级别

我们从最基本的开始。PHP有三种最基本的错误类型,从低级到高级分别为:注重、警告和错误(或致命错误)。通常情况下,注重和警告不会终止程序;但是致命错误则是危险故障(例如,调用一个没有定义的函数或参考一个不存在的对象),将导致程序中断。这些错误有可能在启动、解析、编译或运行时发生。

立即学习“PHP免费学习笔记(深入)”;

要害字如E_NOTICE, E_ERROR等用于表明错误的不同类型和等级。在PHP手册上可以获得它们的具体信息列表。

脚本阶段错误显示由error_reporting()函数进行控制。这一函数针对不同的错误等级设置不同的参数。表A给出了使用此函数报告警告和致命错误的脚本程序。

表A


登录后复制

将表B中的代码与上面的进行比较发现,Listing B中隐藏错误信息甚至隐藏致命信息,使得错误信息不会被显示出来。
表B


登录后复制

表C中的代码将所有错误信息甚至简单的注重事项都显示出来:
表C


登录后复制

如以上3个例子所示,error_reporting()函数在控制错误发生时,在屏幕上显示内容非常重要。这里的要害字是displayed,其表达的意思是错误不被显示而不是错误没有发生。因此,发生致命错误时(例如不正确的函数调用),程序将被终止;但是,此时没有任何消息显示给用户。

以上就是php自定义错误处理器的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2156099.html

(0)
上一篇 2025年2月25日 06:41:18
下一篇 2025年2月18日 00:52:27

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php专业需要掌握哪些知识

    网站我们分为前端、后端,组成在一起就可以搭建一套独立的网站。在招聘职位中,前端和后端是分开来招聘的,有前端设计师,php后端工程师。如果你能独立完成一个网站,那就是全栈工程师了。好了,让我们来看看搭建web具体都包含哪些知识点: 前端: 基…

    2025年2月25日
    200
  • PHP注释种类有哪些

    php 注释 (comments) 有两种类型: 一种是单行注释,一种是多行注释。 PHP 单行注释语法(推荐学习:PHP编程从入门到精通) 在一行中所有 “//” 符号右面的文本都被视为注释, 因为 PHP 解析器…

    2025年2月25日
    200
  • php中什么是可变变量

    什么叫可变变量 不知道大家在使用php的时候是否遇到这样一种情况,即想将一个变量的内容作为另一个变量的名称。在php中,这个需求可以通过可变变量(Variable variables)来实现。 可变变量的一般形式为:(推荐学习:PHP编程从…

    2025年2月25日
    200
  • php中的接口是什么

    接口interface是一个规定,给人继承用的东西,有点像抽象类 在里面定义的方法,却不去实例化,而需要别的类去implements它,而且必须一一实现接口定义的所有方法。 举个例子(推荐学习:PHP编程从入门到精通) interface …

    2025年2月25日
    200
  • php中strtotime什么意思

    strtotime PHP内置时间函数 (PHP 4, PHP 5) strtotime()可以用英语的自然语言创建某个时刻的时间戳 立即学习“PHP免费学习笔记(深入)”; 函数语法:int strtotime(string $time[…

    2025年2月25日
    200
  • php中if和switch的区别

    当被判断的值是常量(固定不变的值)时,switch的运行效率比ifelse的运行效率高;(推荐学习:PHP编程从入门到精通) $status=3;   // 变判断的值为常量switch($status){  case 1:    echo…

    2025年2月25日
    200
  • php值得学吗

    php主要是应用于web开发,其执行效率要远高于其他编程语言,并且php还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 因此在全球互联网企业站中有60%以上使用着PHP技术,80%国内互联网网站采用PHP进行开发。很…

    2025年2月25日
    200
  • tomcat可以运行php吗

    php是一种服务器端语言,要运行php程序必须是在服务器中,今天给大家介绍一下如何在web服务器中搭建php服务。所选的web服务为tomcat服务,所以首先大家要先安装tomcat,并会简单的使用。 1、首先在下载php程序,是一个zip…

    2025年2月25日 编程技术
    200
  • wamp运行PHP中文字乱码

    wamp运行php文件出现中文乱码如何解决? 方法一: 在php文件头部加上如下代码: header(‘Content-Type:text.html;charset=UTF-8’); 登录后复制 方法二: 保存php文件的时候,需要存储为 …

    2025年2月25日
    200
  • php支持多线程吗

    php 默认并不支持多线程,要使用多线程需要安装 pthread 扩展,而要安装 pthread 扩展,必须使用 –enable-maintainer-zts 参数重新编译 php,这个参数是指定编译 php 时使用线程安全方式…

    2025年2月25日
    200

发表回复

登录后才能评论