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

前端之家收集整理的这篇文章主要介绍了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 …或该客户端…

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

原文链接:https://www.f2er.com/php/131290.html

猜你在找的PHP相关文章