【php技术】PHP错误类型和屏蔽方法

【php技术】PHP错误类型和屏蔽方法

作者:简单生活 来源:本站 发表时间:2016-10-30 08:58:12 查看:7 次

一、php的错误类型

首先,我们需要知道的是怎么才能显示我们的错误:

通过在代码中添加两行代码:

1.显示除E_STRICT外的所有错误和警告信息

error_reporting(E_ALL);

2. 是否把错误展示在输出上

ini_set(‘display_errors‘, ‘On‘);

有了以上两部操作,我们就可以把我们的错误信息展示在页面上了。

第二,我们需要知道php有哪些错误类型:

根据中文官方文档,共有16个错误级别:

地址:http://php.net/manual/zh/errorfunc.constants.php

在文档中已经非常清楚的描述错误的级别和出错的原因,这里我们选择几个比较有代表性的错误,给大家详细说明:

1. E_ERROR

致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。页面上通常会显示Fatal Error,出现这种错误的原因可能为:访问不存在此函数代码、服务器执行时间超时、调用了不存在的类代码等等

如:类不存在

$goodsModel = new Goods();

Fatal error: Class ‘Goods‘ not found in D:\web\error.php on line 3

2. E_PARSE

编译时语法解析错误。解析错误仅仅由分析器产生。这种语法错误采用专业的IDE就可以很好的避免,诸如phpstorm,zend studio等等。

如:没有设置变量值

$a = ;

Parse error: syntax error, unexpected ‘;‘ in D:\web\error.php on line 3

3. E_WARNING

运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。

如:

include ‘xxx.php‘;

echo ‘继续运行‘;

Warning: include(xxx.php): failed to open stream: No such file or directory in D:\web\error.php on line 3

Warning: include(): Failed opening ‘xxx.php‘ for inclusion (include_path=‘.;C:\php\pear‘) in D:\web\error.php on line 3

继续运行

4. E_NOTICE

运行时通知。表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。这种错误的级别稍微低一些。

如:

echo $c;

Notice: Undefined variable: c in D:\web\error.php on line 8

5. E_DEPRECATED

运行时通知。启用后将会对在未来版本中可能无法正常工作的代码给出警告。

如:

当我们使用PHP5.5(或更高)时,如果使用mysql_connect(()函数连接数据库时就会报错,建议使用更新的MySQL连接方式

$conn = mysql_connect(‘localhost‘,‘root‘,‘admin‘);

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\web\error.php on line 4

还有很多的错误类型,大家可以通过文档了解更多。

二、屏蔽方法

1、屏蔽某个函数错误信息

使用@符号,可以屏蔽某个函数错误信息,这是就不会报错。

如:

$conn = @mysql_connect(‘localhost‘,‘root‘,admin);

2、屏蔽某个类型的错误

2.1 在代码中屏蔽

语法:error_reporting(E_ALL ^ 错误常量) 或 error_reporting(E_ALL & ~错误常量)

如:

error_reporting(E_ALL ^ E_DEPRECATED);

$conn = mysql_connect(‘localhost‘,‘root‘,‘admin‘);

2.2 在配置文件php.ini中屏蔽

语法:error_reporting = E_ALL & ~错误常量

如:

error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_NOTICE

3、屏蔽所有错误

方式:

在代码中error_reporting(0) 或者 修改配置文件error_reporting = 0

但是我们在工作中一般建议不关闭所有报错,而是通过日志的方式记录所有错误信息,不在页面中展示错误信息。之后我会给大家介绍怎么捕捉错误并记录日志。

时间: 2024-08-24 01:14:55

【php技术】PHP错误类型和屏蔽方法的相关文章

PHP基础教程 常见PHP错误类型及屏蔽方法

PHP基础教程 常见PHP错误类型及屏蔽方法 程序只要在运行,就免不了会出现错误,错误很常见,比如Error,Notice,Warning等等.这篇文章兄弟连PHP培训小编来跟大家具体说一下PHP的错误类型和屏蔽方法.在PHP中,主要有以下3种错误类型. 1. 注意(Notices) 这些都是比较小而且不严重的错误,比如去访问一个未被定义的变量.通常,这类的错误是不提示给用户的,但有时这些错误会影响到运行的结果. 2. 警告(Warnings) 这就是稍微严重一些的错误了,比如想要包含inclu

PHP错误类型及屏蔽方法

PHP 错误类型及屏蔽方法 1. 注意( Notices ) 这些都是比较小而且不严重的错误, 比如去访问一个未被定义的变量. 通常, 这类的错误是 不提示给用户的,但有时这些错误会影响到运行的结果. 2. 警告( Warnings ) 这就是稍微严重一些的错误了, 比如想要包含 include() 一个本身不存在的文件. 这样的错误 信息会提示给用户,但不会导致程序终止运行. 3. 致命错误( Fatal errors ) 这些就是严重的错误, 比如你想要初始化一个根本不存在的类的对象, 或调

python常见错误类型及解决方法

1.IndentationError:缩进错误 如: IndentationError: unindent does not match any outer indentation level IndentationError: unexpected indent 原文地址:https://www.cnblogs.com/xybin/p/11336082.html

Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)

Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异常停止 2)异常退出 Monkey 调试参数 --kill-process-after-error  犹豫一个错误而停止时,出错的应用程序将继续处于运行状态 --wait-dbg   启动monkey后,先中断其运行,等待调试器附加上来 命令演示 adb shell monkey -p com.da

关于vs中 “错误 类型“xxxx”在未被引用的程序集中定义。必须添加对程序集“xxxx”的引用。”的解决方法。

错误  类型“xxxx”在未被引用的程序集中定义.必须添加对程序集“xxxx”的引用. 1.先检查解决方案的框架版本是否是你需要编译的版本(解决方案--> 右键-->属性-->应用程序-->目标框架). 2.在解决方案资源管理器中右键单击-->引用-->添加引用--> 程序集-->在搜索框中搜索需要引用的程序集“System.xxxx”,选择与解决方案目标框架相匹配的版本进行引用即可.

js错误类型

错误类型 执行代码时可能会发生的错误有很多种.每种错误都有对应的错误类型,ECMA-262定义了7种错误类型: 1.Error 2.EvalError 3.RangeError 4.ReferenceError 5.SyntaxError 6.TypeError 7.URIError 其中,Error是基类型(其他六种类型的父类型),其他类型继承自它.Error类型很少见,一般由浏览器抛出的.这个基类型主要用于开发人员抛出自定义错误. PS:抛出的意思,就是当前错误无法处理,丢给另外一个人,比如

IOS开发中 常常遇到的遇到的警告,错误汇总,解决方法

从sdk3.2.5升级到sdk 5.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了. 1,警告:"xoxoxoxo"  is deprecated 解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可. 2,警告:Declaration of "struct sockaddr" will not be visible outside of this function 解决办法:在你的开源.m文件中添加 #import <netinet/in.

coreseek常见错误原因及解决方法

coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索.论坛/站内搜索.数据库搜索.文档/文献检索.信息检索.数据挖掘等应用场景,用户可以免费下载使用 本文为大家整理了coreseek/sphinx中文检索引擎的常见问题和解决方法,感兴趣的同学参考下. Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协

C++ Primer 学习笔记_102_特殊工具与技术 --运行时类型识别[续]

特殊工具与技术 --运行时类型识别[续] 三.RTTI的使用 当比较两个派生类对象的时候,我们希望比较可能特定于派生类的数据成员.如果形参是基类引用,就只能比较基类中出现的成员,我们不能访问在派生类中但不在基类中出现的成员. 因此我们可以使用RTTI,在试图比较不同类型的对象时返回假(false). 我们将定义单个相等操作符.每个类定义一个虚函数 equal,该函数首先将操作数强制转换为正确的类型.如果转换成功,就进行真正的比较:如果转换失败,equal 操作就返回 false. 1.类层次 c