When a call is made to a single-entity find method in an entity bean, the ObjectNotFoundException is thrown because the requested entity was not found,It is not automatically rolled back because it is an application exception , instead of system exception . my question is how to tell application exception from system exception ?
For these types of questions it is always best to look to the EJB Specification for the answer. It has the following to say about Application Exceptions:
From Section 18.1.1 of the EJB 2.0 Specification An application exception class must be a subclass (direct or indirect) of java.lang.Exception. An application exception class must not be defined as a subclass of the java.lang.RuntimeException or of the java.rmi.RemoteException.
Therefore, a System Exception is a RuntimeException, RemoteException, or subclass of either. An Application Exception is anything else. CreateException, RemoveException, FinderException, and ObjectNotFoundException are all Application Exceptions. EJBException is a System Exception. BTW, this is getting too detailed for the SCEA exam. [ February 09, 2003: Message edited by: Chris Mathews ]
Cob is sand, clay and sometimes straw. This tiny ad is made of cob: