【发布时间】:2016-11-21 15:15:18
【问题描述】:
在我的 Symfony 项目中,我使用了一个库来创建 ssh 连接。在我的脚本中,我将尝试使用不同的端口(prots 数组)进行连接。如果它无法使用一个端口连接,它将尝试使用下一个端口(因为我们在不同的服务器中使用不同的端口,而不是黑客攻击或端口扫描)。
当我使用的第三方库无法连接到服务器时,它会抛出 user notice。因此,如果连接的正确端口是第二个端口,它会首先抛出一个user notice 说它无法连接,然后它会连接第二个端口。
当我在prod 环境中运行 muy Symfony 项目时,一切看起来都正常(因为 user notice 消息被禁用),但在 dev 环境中,Symfony 的 ErrorHandler 将此消息转换为 Exceptions 终止代码执行。
到目前为止,我有一些选择,但我不喜欢其中任何一个:
- 使用
error_reporting()隐藏此类消息...但有用的信息会丢失。 - 使用@运算符隐藏该函数的警告...但每个人都讨厌@。
- 在 Symfony 的
dev环境中关闭调试...但有用的信息将会丢失。 - 使用
trycatch来处理异常...但是为什么呢?生产中不会有异常。
最好的选择是什么?
【问题讨论】:
-
使用不同的库?或者检查代码,看看它是否支持禁用警告的配置选项。现代图书馆没有预料到您的用例,这很奇怪。
-
@Cerad 感谢您的建议。但是关于我使用的库,当 Symfony 的开发环境中出现警告时,我应该如何处理?
标签: php symfony error-handling