php – 是否捕获异常并继续执行程序执行最佳做法?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 是否捕获异常并继续执行程序执行最佳做法?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序连接到rabbITMQ.有时,它会抛出一个amQPTimeoutException.更具体地说“发送数据时出错,套接字连接超时”.

我的解决方

我正在捕捉AMQPTimeoutException并调用我的重新连接方法.之后程序继续执行正常.另外我设置了一个标志,以便异常处理最多3次.

try
{
    sendMethod($message);
} catch (AMQPTimeoutException $e) {
      echo "caught socket connection exception". "\n";
      $this->reconnect($message,$exchangeName,$queue);
  }
//reconnect internally checks the flag

我的问题:这是最好的做法吗?如果没有什么其他解决方案是可能的

注意:该应用程序是用PHP编写的.

是.

应该抓住和处理例外情况.这是最好的做法.例外是一种语言中的控制流结构,允许程序员处理他们不期望发生的事情,或很少期望发生的事情.

在你的情况下,当涉及套接字时,捕获异常是完全合理的. TCP / IP通信不完善,并且根据广泛的条件,插座故障在某个时间点100%确定.

我建议的是,您开始记录这些套接字超时发生.通常它们是由资耗尽引起的,但是它在哪里呢?服务器A或服务器B …或该客户端…

超时是需要调查的问题的症状.当您正确处理它们时,我强烈建议添加一些日志记录,以了解它们为什么发生.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 是否捕获异常并继续执行程序执行最佳做法?全部内容,希望文章能够帮你解决php – 是否捕获异常并继续执行程序执行最佳做法?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。