怎么在php中利用异常处理捕获错误

  介绍

本篇文章为大家展示了怎么在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中利用异常处理捕获错误