PHP7中对于错误处理的具体方式是怎样的?

2026-04-03 12:210阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3138个文字,预计阅读时间需要13分钟。

PHP7中对于错误处理的具体方式是怎样的?

项目初期遇到一个奇特情况:使用GuzzleHttp和curl发送API请求,响应超时导致抛出异常。尽管使用了try-catch,但没有捕获异常,导致代码意外停止执行。后来查阅资料后解决了问题。

前段时间在项目中遇到一个当时觉得比较奇怪的情况:使用 GuzzleHttp 发送 curl 请求,API 响应超时导致抛出异常。但 catch(\Exception) 并没有捕获异常,导致代码意外停止运行。后来查资料发现,在 PHP 7 中,GuzzleHttp 请求超时抛出的异常继承的是 Error,而 Error 并没有继承 Exception,所以 catch(\Exception) 无法捕获并处理该异常。

PHP 7 中对 Error 的处理

在 PHP 5 中,当程序中有致命错误发生时,脚本会立即停止运行。并且,通过 set_error_handler 设置的错误处理程序在这种情况下并不会被调用。


⒈ 自定义错误处理程序 set_error_handler

  set_error_handler 接受两个参数,第一个为自定义的错误处理函数,第二个参数指定触发该自定义错误处理函数的错误级别。但需要指出的是,在任何时候,只能有一个自定义的错误处理程序起作用。

阅读全文

本文共计3138个文字,预计阅读时间需要13分钟。

PHP7中对于错误处理的具体方式是怎样的?

项目初期遇到一个奇特情况:使用GuzzleHttp和curl发送API请求,响应超时导致抛出异常。尽管使用了try-catch,但没有捕获异常,导致代码意外停止执行。后来查阅资料后解决了问题。

前段时间在项目中遇到一个当时觉得比较奇怪的情况:使用 GuzzleHttp 发送 curl 请求,API 响应超时导致抛出异常。但 catch(\Exception) 并没有捕获异常,导致代码意外停止运行。后来查资料发现,在 PHP 7 中,GuzzleHttp 请求超时抛出的异常继承的是 Error,而 Error 并没有继承 Exception,所以 catch(\Exception) 无法捕获并处理该异常。

PHP 7 中对 Error 的处理

在 PHP 5 中,当程序中有致命错误发生时,脚本会立即停止运行。并且,通过 set_error_handler 设置的错误处理程序在这种情况下并不会被调用。


⒈ 自定义错误处理程序 set_error_handler

  set_error_handler 接受两个参数,第一个为自定义的错误处理函数,第二个参数指定触发该自定义错误处理函数的错误级别。但需要指出的是,在任何时候,只能有一个自定义的错误处理程序起作用。

阅读全文