我们有一个应用程序托管在一个docker容器中,调用REST API,我们希望识别网络超时并以特定的方式处理它们。
现在,为了检测超时,我们使用以下代码片段:
if netErr, ok := err.(net.Error); ok && netErr.Timeout() { // do something... }
虽然这在捕获某些案例方面确实有效,但当我设置防火墙/安全组未正确配置且主机不可访问的集成测试时,它会导致以下错误:
Post \"https://notreal.com/endpoint\": dial tcp 10.130.140.150:8443: i/o timeout
编辑:
看起来这是我们自己的库的问题。该错误最初是实现net的错误。错误,但被吞噬,仅返回字符串,不再实现 Timeout() 或 Temporary()。
白猪掌柜的
相关分类