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 …或该客户端… 超时是需要调查的问题的症状.当您正确处理它们时,我强烈建议添加一些日志记录,以了解它们为什么发生. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |