今天就跟大家聊聊有关什么是PHP中错误与异常,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<代码> 代码解析错误比;<代码>致命错误代码>比;<代码> 代码>在减弱;<代码>通知> 代码比;<代码>弃用代码>
- <李>
弃用最低级别的错误(不推荐,不建议)
<代码>使用一些过期函数的时候会出现,程序继续执行代码>
通知通知级别的错误
<代码>使用一些未定义变量,常量或者数组关键没有加引号的时候会出现,程序继续执行代码>
减弱警告级别的错误
<代码>程序出问题了,需要修改代码! ! !程序继续执行代码>
致命错误错误级别的错误
<代码>程序直接报错,需要修改代码! ! !中断程序执行,可使用register_shutdown_function()函数在程序终止前触发一个函数代码>
解析错误语法解析错误
<代码>语法检查阶段报错,需要修改代码! ! !中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也做不了代码>
E_USER_相关的错误
<代码>用户定义的错误,用户手动抛出错误,进行自定义错误处理代码>
- <李>
<代码>报错(& # 39;display_errors # 39;, 0),代码> //关闭错误输出(开发环境开启,生产环境关闭)
李> <李><代码> error_reporting (E_ALL& ~ E_NOTICE);代码> //设置错误报告级别
李> <李><代码>报错(& # 39;error_reporting # 39;, 0),代码> //设置错误报告级别
李>
- <李>
error_reporting=E_ALL&~E_NOTICE;
//设置错误报告级别display_errors=1;
//开发环境开启,生产环境关闭
除了在脚本里设置,还可以在php。ini配置文件里配置
PHP的异常是后来新增特性,与JAVA/C#的异常不同,PHP异常需要手动抛出
throw new Exception
,而不是系统自动抛出PHP错误与异常的区别,他们是2个
不同的概念
,但有共同的地方:如果异常不捕获处理,程序将会终止,并报出Fatal Error 错误,看到这里大家就会觉得异常是不是错误的一种,这是一种错觉,但这样理解也可以。但异常捕获后程序可以继续执行,而真正的Fatal Error错误出现后程序就必须终止
异常可以使用
try{}catch(){}
来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用try{}catch(){}
捕获的如果抛出了异常,就必须捕获它,否则程序终止执行。
异常抛出:
throw new Exception('Some Error Message');
错误抛出:
trigger_error()
trigger_error()
触发的错误不会被try-catch
异常捕获语句捕获
set_error_handler()
只能处理Deprecated
、Notice
、Waning
这三种级别错误,而且处理后,脚本将会继续执行发生错误的后一行
register_shutdown_function()
这个方法是脚本结束前的最后一个回调函数,所以无论是die()/错误(异常)/还是脚本正常结束都会调用
set_exception_handler()
设置默认的异常处理程序,有try/catch捕获的话这个函数就不会执行,反之就会执行,而且执行的话,脚本将不会继续执行发生异常的后一行代码,程序马上中止
set_exception_handler()
注意事项
set_exception_handler(“myException”) 不仅可以接受函数名,还可以接受 类的方法(公开的静态方法 及 公开的非静态方法 都可以),但需要以 数组形式 传递,数组的第一值为“类名”,第二个参数为“方法名”,如下代码所示:
<?php 类应用{ 函数myException($除外){ 回声“& lt; b>例外:& lt;/b>“;美元,异常→getMessage (); } } set_exception_handler(数组(& # 39;应用# 39;& # 39;myException& # 39;)); 抛出新的异常(& # 39;异常发生# 39;); ?在
- <李>
由于用户行为导致出现异常
1,没有通过验证器
2,没查询到结果
3,需要向用户返回具体信息
什么是PHP中错误与异常