我有一个自己的ExceptionHandler添加到我的jsf 2.2项目中。 的web.xml
<factory>
<exception-handler-factory>package.exceptionhandler.MyExceptionHandlerFactory</exception-handler-factory>
</factory>
exceptionHandlerFactory包含
public ExceptionHandler getExceptionHandler() {
ExceptionHandler handler = new MyExceptionHandler(parent.getExceptionHandler());
return handler;
}
和ExceptionHandler包含
@Override
public void handle() throws FacesException {
LOGGER.debug("handle exception...");
}
我的虚拟转换器每次抛出异常:
@FacesConverter(value = "MyConverter")
public class MyConverter implements Converter {
@Override
public Object getAsObject(final FacesContext context, final UIComponent comp, final String value) {
throw new RuntimeException("error");
}
//...
但是异常不是由我自己的excpetion处理程序处理的。为什么呢?
答案 0 :(得分:0)
我发现了我的问题。
这不是jsf的问题。我在应用程序中有一个PhaseListener,它只会在页面上显示一些错误消息。但是这个PhaseListener处于INVOKE_APPLICATION阶段,因此从未执行过。