2015-02-07 5 views
3

난 무작위로 실패하고 예외를 발생시킬 수있는 defaultLayout에 몇 가지 공유 논리가 있는데, 처리기가 현재 실행 중인지에 상관없이 한 곳에서 처리하려고합니다.Yesod의 모든 핸들러에서 예외를 전역 적으로 처리하려면 어떻게해야합니까?

요청 관련 예외를 처리 할 수있는 곳이 있으며 여전히 사용자에게 응답 할 수 있습니까? (리디렉션 또는 오류 페이지 또는 기타)

편집 : 가능하면 모든 다른 예외를 구분할 수 있기를 원하며 일부만 처리하고 다른 일부는 무시하도록 선택하십시오.

+1

이전에는 사용하지 않았지만 Yesod typeclass의 [errorHandler'] (http://www.yesodweb.com/book/yesod-typeclass_custom_error_pages) 함수가 [ 'defaultErrorHandler'] (https://github.com/yesodweb/yesod/blob/df304d6393a419b308f3f9cde6eb791e6b4a5415/yesod-core/Yesod/Core/Class/Yesod.hs#L475)를 참조하십시오. – MaxGabriel

답변

0

사용자 정의 Middleware을 작성하고 yesodMiddleware의 인스턴스로 연결하여이 작업을 수행 할 수 있습니다.