您的位置:首页 > 编程语言 > PHP开发

PHP中错误模块简介

2015-07-02 19:31 489 查看

1. php中常见的错误类型

1. 语法错误

* 1). 少写分号

* 2). 。 。。。。。

2. 环境错误

* 1). php 配置等待

3. 逻辑错误

* 1). 想用一个等号,结果使用了两个等号

2.已定义的错误类型

错误名错误描述
E_ALL
所有的错误和报告
E_ERROR
致命的运行时错误,脚本的执行被
E_WARBING
运行时警告(非致命性),脚本的执行不会被暂停
E_PARSE
编译时解析错误
E_NOTICE
运行时提醒
E_STRICT
启动php对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性
E_DEPRECATED
运行时通知,启动后将会对在未来版本中可能无法正常工作的代码给出警告
E_CORE_ERROR
发生于php启动时初始化过程中的致命错误
E_CORE_WARNING
发生于php启动时初始化过程中的警告错误(非致命性)
E_COMPILE_ERROR
编译时致命性错
E_COMILE_WARNING
编译时警告(非致命性错)
E_USER_ERROR
用户产生的出错消息
E_USER_WARNING
用户产生的警告消息
E_USER_NOTICE
用户产生的提醒消息
E_USER_DEPRECATED
用户产生的警告信息,类似E_DEPRECATED,但是是通过
trigger_error
函数产生的
E_RECOVERABLE_ERROR
可被捕获的指明错误,她表示可能发生了一个非常危险的错误,但是还没有导致PHP引擎处于不稳定状态。如果该错误没有被用户自定义句柄捕获(参见
set_error_handler()
),将成为一个E_ERROR,从而脚本会终止运行。

3.php中的错误级别

1.
Deprecated(不推荐|过时)
错误


* 1).
最低级的错误
比如使用
ereg
函数, mysql_escape_string

* 2).
Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.


2.
Notice
通知级别的错误


* 1). 访问未定义的变量

* 2). 访问数组时,$arr[“name”]; 程序首先会执行查找常量name,如果没有找到则会将name当做字符串处理

3.
Warning
警告级别的错误


* 1). 参数个数不对

* 2). 参数类型不对

4.
Fatal error
致命级别的错误
(终止程序继续执行)


* 1). 调用未定义的函数

* 2). 参数类型不对

5.
parse error
语法解析错误


* 1). 检查阶段没有通过,其他任何错误都不会看到,因为还没到哪里,
程序还没解析成功


6.
E_USER_相关的错误


* 1). 检查阶段没有通过,其他任何错误都不会看到,因为还没到哪里,
程序还没解析成功


4. php配置文件中与错误相关的选项

选项描述
error_reporting设置错误报告的级别
display_error是否显示错误
log_errors设置是否将产生的错误信息记录到日志或者error_log
error_log设置错误日志的保存文件
log_errors_max_len设置log_errors的最大字节数
ignore_repeated_errors是否忽略重复的错误信息
ignore_repeated_source是否忽略重复的消息来源
track_errors如果开启此选项,最后一个错误将永远保存在
$php_errormsg

5. 如何设置错误级别

1. 在配置文件中修改error_reporting 的值

2. 在代码中通过
error_reporting函数
设置


* 1.error_reporting(0); 不显示错误,除了E_PARSE

* 2.error_reporting(-1) | error_reporting(E_ALL) 显示所有错误

3. 使用ini_set(‘error_reporting’, 0)函数运行时设置

6. 抑制错误输出符号
@

1.
@
settype()

7.通过trigger_error出发PHP错误

触发错误的功能不只限于php解析器,还可以通过
trigger_error()
函数触发错误。

trigger_error(‘错误信息’, 自定义错误,如:(E_USER_NOTICE) ) trigger_error(‘自定义错误信息’, E_USER_NOTICE);

该函数不会打断程序继续执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: