[OmniFaces utilities] The
is()
method returns true
if the given exception or one of its nested causes is an instance of the given type.Method:
OmniFaces 2.1 implementation:
OmniFaces 2.0 implementation:
Usage:
Example 1 -
this is copy-pasted from OmniFaces documentation (check if the ConstraintViolationException is the cause of PersistenceException)
try{
try{
...
} catch (PersistenceException e) {
//
Check if the caught exception has a ConstraintViolationException in its
hierarchy.
if (Exceptions.is(e, ConstraintViolationException.class))
{
// ...
}
}
Example 2 -
distinguish between NullPointerException and IllegalArgumentException
try {
//... code that may produce other
exceptions than NullPointerException and IllegalArgumentException
// if the 'myform' component is not found
then next line will throw a NullPointerException
UIForm myform = (UIForm)
Faces.getViewRoot().findComponent("myForm");
// if the 'myform' component contains
children then next line will throw an IllegalArgumentException
Components.validateHasNoChildren(myform);
//... more code that may produce other
exceptions than NullPointerException and IllegalArgumentException
}
catch (Exception e) {
if (Exceptions.is(e, java.lang.NullPointerException.class))
{
LOG.info("The form 'myFrom' cannot
be found !");
}
else if (Exceptions.is(e,
java.lang.IllegalArgumentException.class)) {
LOG.log(Level.INFO, "]" +
"The form ''myFrom'' was found, but it has childrens ! [{0}",
e.getMessage());
}
}
Example 3 - in a custom exception handler for conditional navigation
...
Throwable
throwable = exceptionQueuedEventContext.getException();
FacesContext
facesContext = FacesContext.getCurrentInstance();
NavigationHandler
nav = facesContext.getApplication().getNavigationHandler();
if (Exceptions.is(throwable,
javax.faces.convert.ConverterException.class)) {
//redirect
to converters error page, converter.xhtml
nav.handleNavigation(facesContext, null,
"/converter");
}
if (Exceptions.is(throwable,
javax.faces.validator.ValidatorException.class)) {
//redirect to validators error page,
validator.xhtml
nav.handleNavigation(facesContext, null, "/validator");
}
facesContext.renderResponse();
...
Obviously, you may found many useful examples for this method.
Niciun comentariu :
Trimiteți un comentariu