ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php7 Error处理

2021-11-27 09:01:37  阅读:211  来源: 互联网

标签:set 错误 处理 捕获 Error USER error php7


1: error 和 exception 区别

Exception 需要通过 throw new Exception 手动抛出

Error 可以在 PHP 脚本执行发生错误时自动触发,也可以通过 trigger_errors() 手动触发

都实现了 Throwable 接口,可以通过 catch (Throwable $t) {...} 同时捕获 Error 和 Exception

用 catch (Error $e) { ... },或者通过注册错误处理函数( set_error_handler())来捕获 Error

用 catch (Exception $e) { ... } 或者通过注册异常处理函数( set_exception_handler())来捕获 Exception

用 catch (Throwable $e) { ... } 可以同时捕获 Exception 和 Error

 

2.php常见Error级别

1:   E_ERROR 运行时致命的错误。不能修复的错误。停止执行脚本。【Fatal Error,调用 不存在的方法等】
2:  E_WARNING 运行时非致命的错误。没有停止执行脚本。
3:  E_PARSE 编译时的解析错误。解析错误应该只由解析器生成。

4:  E_NOTICE 运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。
5:  E_ALL 所有的错误和警告的级别,除了 E_STRICT。

6: trigger_error 可以触发E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE 等非常见错误

 

3: error 和 exception 错误处理

1: error_reportin(0) 屏蔽所有错误

 

2:set_error_handler 是有自己的捕获级别的,默认 E_ALL | E_STRICT,且不受 error_reporting() 设定的级别影响,即使你 error_reporting(0),set_error_handler 依然能捕捉到相应的错误set_error_handler 能捕获的错误如下 E_USER_ERROR & E_USER_WARNING & E_USER_NOTICE & E_USER_DEPRECATED 和 部分运行时系统错误 E_WARING & E_NOTICE & E_DEPRECATED 的捕获器,即 E_PARSE (Parse Error) ,E_ERROR(Fatal error)是无法用其捕获到的

 

3: set_exception_handler 能处理所有exception异常

4: try catch 能处理上诉常见所有错误和其他异常

5: register_shutdown_function 可以使用get_last_error记录所有错误

 

4: Q

1: 怎么捕获E_PARSE

2: 访问出现500 Internal Server Error怎么排查

 

标签:set,错误,处理,捕获,Error,USER,error,php7
来源: https://www.cnblogs.com/bigmiao/p/15610579.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有