加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:14:41 所属栏目:PHP教程 来源:网络整理
导读:我的应用程序连接到rabbitMQ.有时,它会抛出一个AMQPTimeoutException.更具体地说“发送数据时出错,套接字连接超时”. 我的解决方案 我正在捕捉AMQPTimeoutException并调用我的重新连接方法.之后程序继续执行正常.另外我设置了一个标志,以便异常处理最多3次.
我的应用程序连接到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 …或该客户端…

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读