本篇文章为大家展示了怎么在php中利用异常处理捕获错误,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强> php的错误报告有三种:强>
1,错误,语法解析错误,致命错误
2,警告
3注意
<强>后果:强>
错误→致命错误,会终止已下程序的执行,语法错误的话,PHP压根就没执行。
警告→他不会终止运行,但会影响结果。
注意→不会终止执行,也不会影响结果。
为了让用户得到更好的体验,我们屏蔽所有错误的输出,是输出,而不是显示。但这样的话,管理员也看不到错误了。页面上不显示错
误,而将错误生成一个日志,提供给管理员查看。
error_reporting (~ E_ALL)将所有输出都屏蔽掉了,自然,管理员也看不到了。我不要屏蔽所有输出,我只要屏蔽所有显示
报错(& # 39;display_errors # 39; & # 39;从# 39;);表示屏蔽了所有的页面上错误的显示,但没有屏蔽错误的输出。
报错(& # 39;log_errors # 39; & # 39;在# 39;);,//开启日志写入功能,报错(& # 39;error_log& # 39; & # 39; myerror.log& # 39;);//日志的存放位置,报错(& # 39;display_errors # 39; & # 39;从# 39;);,//屏蔽页面显示,error_reporting (E_ALL);,//输出所有错误 echo 123年,echo $ str,,//这个会出现一个注意,表示未声明变量,echo 日期();,//警告,没有传参,echo dae (),,//致命错误,找不到这个函数,echo 123;
<强>异常:强>
在PHP语言里,所有异常都必须自己抛出,而不像JAVA之类的语言会自动抛出异常,这也正是PHP源代码里很少看到异常处理语句的
原因之一。
<强>异常与错误:强>
异常是指程序运行中不符合预期情况以及与正常流程不同的状况。错误则属于自身问题,是一种非法语法或者环境问题导致的,让编译器
无法通过检查设置无法运行的情况。
由于PHP最开始是没有异常处理,后来为了进军企业级开发,模仿。PHP一旦遇到非正常代码,大多数情况下,都是直接抛出错误,而不
是异常。
PHP只有在你抛出一个异常后,才能用try…catch来捕获异常(一般情况下如此,也有部分异常可以自动捕获)。
在PHP中通常会在以下场景中使用异常:
1,对程序的悲观预测:如果认为自己的代码无法一一处理各种可预见的情况,不可预见的情况。
2,程序的需要和对业务的关注:如果对数据的一致性要求很高时,可以用试一试……抓把异常造成的逻辑中断破坏将到最小,并且经过补救
处理后,不影响业务逻辑的完整性。
3,语言级别的健壮性要求:通过精确控制运行时的流程,在程序中断时,有预见的用试试……抓住缩小可能出错的范围,及时捕获异常并做
出相应的补救。
PHP中的错误:
错误就是会使脚本运行不正常的情况。
在PHP中主要的错误等级如下:
弃用:最低级别的错误,表示“不推荐,不建议“,例如在PHP 5中使用了ereg系列的正则函数就会出现。这类错误一般由于使用了不推荐的,过时的函数或语法造成。不影响程序正常运行,但建议修正。
注意:一般指语法中存在不恰当的地方。如使用变量但是未定义就会报此错误。不影响程序正常流程。
警告:较高级别的错误,在语法中出现很不恰当的情况才会出现此错误,比如函数参数不匹配。会导致得不到预期的结果,需要修改代码。
胎儿错误:致命错误,直接导致程序终止运行。这类错误必须修改。
绿石英错误:语法解析错误,上面几种都属于运行时错误,此错误在运行前就会抛出。
引用><>强自定义错误处理程序:强>
可以使用set_error_handler()函数来托管错误处理程序,可自行定制错误的处理流程。
如果要取消托管的话,可以在同一个页面中使用restore_error_handler()来取消托管;如果想要自己抛出一个错误的话,可以使用
trigger_error()函数。
怎么在php中利用异常处理捕获错误