使用network-wreq频繁发生FailedConnectionException2

时间:2014-10-07 14:39:03

标签: haskell http-conduit

我正在运行机器人在vindinium.org玩游戏。它在shell循环中运行,以便在它完成后开始新的游戏。

我注意到,我可能有一半的游戏因http-conduit中被抛出的异常而丢失。例外是 vindinium: FailedConnectionException2 "vindinium.org" 80 False getAddrInfo: does not exist (Name or service not known)

据我所知,这是一个DNS失败,但我不确定是什么导致它,与我在同一网络上的其他人没有这个问题(但没有其他人有问题)客户端)。

目前,我处理网络的唯一代码是:

vinPost :: String -> [FormParam] -> IO Resp
vinPost url body = catch (post url (body ++ ["key" := vindinKey]) >>= asJSON)
                   (\e -> do
                            let err = show (e :: IOException)
                            hPutStr stderr $ "Error: " ++ err
                            vinPost url body)

最初,我也没有catch部分,但我尝试添加它并没有帮助。它实际上只是再次尝试,因为错误似乎稍纵即逝。

无论如何,为什么我的catch块无法捕获异常,以及导致此异常的原因是什么?

0 个答案:

没有答案