Sprawdzenie, czy nie zmieniło się zachowanie w dziedziczeniu wyjątków aplikacji EJB

Począwszy od specyfikacji Java EE 6.0, wyjątki aplikacji są domyślnie dziedziczone przez klasy wyjątków podklasy. To zachowanie można skonfigurować za pomocą adnotacji @ApplicationException lub w elemencie <application-exception> pliku ejb-jar.xml.

Ta reguła oznacza flagą adnotację javax.ejb.ApplicationException, jeśli nie ma ona zdefiniowanego atrybutu inherited, a ponadto oznacza flagą element <application-exception> w pliku ejb-jar.xml, który nie ma zdefiniowanego elementu inherited.


Na przykład reguła oznaczy flagą następującą adnotację @ApplicationException:
< span class="Code"> @ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

Reguła oznaczy flagą także element <application-exception> w pliku ejb-jar.xml w poniższym przykładzie:
< span class="Code"> < wyjątek-aplikacji>
      < klasa-wyjątku>ExceptionA< /klasa-wyjątku>
      < rollback> true < /rollback>
</application-exception>


Wyjątki w pliku ejb-jar.xml można zaimplementować w aplikacji, tak jak to przedstawiono w poniższym przykładzie:
< span class="Code" > klasa publiczna ExceptionA rozszerza wyjątek {
}

public class ExceptionB extends ExceptionA {
}

W specyfikacji Java EE 5.0 wyjątek ExceptionB nie jest uznawany za wyjątek ApplicationException, ale w specyfikacji Java EE 6.0 wyjątek ExceptionB jest wyjątkiem ApplicationException, ponieważ rozszerza się on z klasy ExceptionA. W specyfikacji Java EE 6.0 dodano atrybut inherited, którego wartością domyślną jest true, tak więc wszystkie dziedziczone klasy są także wyjątkiem ApplicationException.

Zachowanie specyfikacji Java EE 5.0 można zachować w następujące sposoby:

Więcej informacji na ten temat zawierają następujące zasoby: