Just a bit of background on EJB3.1 exceptions before bringing up my question -
Application exceptions comprise of
User defined checked or unchecked exc
Also from this question:
An application exception shall be thrown when there is a business-logic error, as opposed to a system error.
There is an important difference: application exceptions do not automatically cause a transaction to rollback. The client has an opportunity to recover after an application exception is thrown.
Application exceptions are sent to the client without being repackaged as an EJBException. Therefore, you can use them to report validation errors or business logic problems, and they will reach the client.
javax.ejb.EJBException
extends RuntimeException
so yes, it is a System Exception.Common scenario associated with this: if you've got an uncaught RuntimeException
in your application code it will roll-back. It's pretty useful default behavior.