Verificaţi modificarea de comportament în moştenirea excepţiilor aplicaţiei EJB

Începând cu specificaţia Java EE 6.0, excepţiile de aplicaţie sunt moştenite implicit de clasele de excepţie ale subclasei. Acest comportament poate fi configurat pentru adnotarea @ApplicationException sau în elementul <application-exception> dintr-un fişier ejb-jar.xml.

Această regulă semnalează adnotarea javax.ejb.ApplicationException dacă nu are un atribut inherited moştenit şi semnalează elementul <application-exception> dintr-un fişier ejb-jar.xml care nu are definit elementul inherited.


De exemplu, regula semnalează următoarea adnotare @ApplicationException:
< span class="Code"> @ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

De asemenea, regula semnalează elementul <application-exception> dintr-un ejb-jar.xml în următorul exemplu:
< span class="Code"> < aplication-exception>
& & C & C & C & D < exception-class>ExceptionA< /exception-class>
& & C & C & C & C < rollback> true < /rollback>
</application-exception>


Excepţiile din ejb-jar.xml pot fi implementate în aplicaţie ca în următorul exemplu:
< span class="Code" > public class ExceptionA
}

public class ExceptionB extends ExceptionA {
}

În Java EE 5.0, ExceptionB nu este considerată o ApplicationException, dar în Java EE 6.0 ExceptionB este o ApplicationException, deoarece este o extensie din clasa ExceptionA. Java EE 6.0 a adăugat atributul inherited cu valoarea implicită true, astfel că toate clasele moştenite sunt de asemenea ApplicationException.

Puteţi păstra comportamentul din Java EE 5.0 în următoarele feluri:

Pentru informaţii suplimentare, vedeţi următoarele resurse: