2015-02-07 40 views
3

我在defaultLayout中有一些共享邏輯,它可以隨機失敗並引發一個異常,我想在一個地方處理它,不管當前正在執行什麼處理程序。如何全局處理Yesod中所有處理程序的異常?

有沒有一個地方可以處理任何請求相關的異常,並且可能仍然迴應給用戶? (重定向或錯誤頁面或其他東西)

編輯:如果可能我想能夠區分不同的例外與此,並選擇只處理一些和忽略其他。

+1

我以前沒有用過它,但Yesod類型類的['errorHandler'](http://www.yesodweb.com/book/yesod-typeclass#yesod-typeclass_custom_error_pages)函數聽起來合適,而[ 'defaultErrorHandler'](https://github.com/yesodweb/yesod/blob/df304d6393a419b308f3f9cde6eb791e6b4a5415/yesod-core/Yesod/Core/Class/Yesod.hs#L475)提供了一個例子。 – MaxGabriel 2015-02-08 02:00:48

回答

0

您可以通過編寫自定義Middleware並將其鏈接到您的實例yesodMiddleware來完成此操作。