我得到一個異常(在空列表中使用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