Comprobar si hay un cambio de comportamiento en la herencia de excepción de la aplicación EJB

A partir de la especificación Java EE 6.0, las excepciones de aplicaciones son heredadas por clases de excepción de subclase de forma predeterminada. Este comportamiento se puede configurar en la anotación @ApplicationException o en el elemento <application-exception> de un archivo ejb-jar.xml.

Esta regla señala la anotación javax.ejb.ApplicationException si no tiene un atributo inherited definido, y señala el elemento <application-exception> en un archivo ejb-jar.xml que no tiene un elemento inherited definido.


Por ejemplo, la regla señala la anotación @ApplicationException siguiente:
< span class="Code"> @ApplicationException(retrotracción = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

La regla también señala el elemento <application-exception> en un ejb-jar.xml en el ejemplo siguiente:
< span class="Code"> < excepción-aplicación>
      < clase-excepción>ExceptionA< /clase-excepción>
      < rollback> true < /rollback>
</application-exception>


Las excepciones en el ejb-jar.xml se pueden implementar en la aplicación, como en el ejemplo siguiente:
< span class="Code" > clase pública ExceptionA amplía la excepción {
}

public class ExceptionB extends ExceptionA {
}

En Java EE 5.0, ExceptionB no se considera una ApplicationException, pero en Java EE 6.0, la ExceptionB es una ApplicationException porque se amplia a partir de la clase ExceptionA. Java EE 6.0 ha añadido el atributo inherited con el valor predeterminado de true, de forma que todas las clases heredadas también son ApplicationException.

Puede conservar el comportamiento de Java EE 5.0 en las formas siguientes:

Para obtener más información, consulte los recursos siguientes: