2010-02-09 9 views
8

¿Cómo hacer manipuladores de errores en Lift? Tengo una página html con algunos fragmentos, si uno de esos fragmentos arroja una excepción, quiero atraparlo y redireccionar a alguna página de error fácil de usar.¿Cómo detectar excepciones y redirigir a la página de error en Lift?

¿Cómo hacer esto de la manera catch-all? No quiero poner el manejo de errores en cada fragmento por separado. Estoy buscando algo así como this en Wicket.

Respuesta

11

En caso de duda, marque LiftRules API.

Según this post algo como esto debería funcionar:

LiftRules.exceptionHandler.prepend { 
    case ("production", Req(path, "", GetRequest), someException) => { 
    Log.error("MELT DOWN!!") 
    RedirectResponse("/") 
    } 
} 

La firma del tipo de controlador de excepciones es:

enlace
type ExceptionHandlerPF = PartialFunction[(Props.RunModes.Value, Req, 
    Throwable), LiftResponse] 
+0

404 Not Found. – drozzy

+0

@drozzy, enlace API fijo al punto 2.3 docs –

+2

¿Qué pasa si no quiero distinguir RunModes, etc. y solo qué capturar todas las excepciones que no se manejan dentro de la aplicación? – Ivan

Cuestiones relacionadas