我得到一个异常(在空列表中使用Prelude.head),在所有http请求之后返回502/505异常(并且happstack应用程序打印出“HTTP请求失败:发送资源消失(损坏的管道)“在标准输出中)。在Happstack中捕获异常
我的问题是:在Happstack中控制异常的最佳做法是什么?我应该使用其他的东西而不是simpleHTTP,或者只是在控制器功能上使用Control.Exception.catch?
目前,它类似于在速成班的例子:
main :: IO()
main = do
hSetEncoding stdout utf8
bracket (startSystemState (Proxy :: Proxy AppState)) createCheckpointAndShutdown $
\_control ->
simpleHTTP nullConf { port = 1729 } $ do
_ <- liftIO today
decodeBody policy
controller
where
createCheckpointAndShutdown control = do
createCheckpoint control
shutdownSystem control