The core EJB specs, chapter "Exception Handling", page 356, says
An application exception may be a subclass (direct or indirect) of java.lang.Exception (i.e., a �checked exception�), or an application exception class may be defined as a subclass of the java.lang.RuntimeException (an �unchecked exception�).
Further it says,
An application exception thrown by an enterprise bean instance should be reported to the client precisely (i.e., the client gets the same exception).
But on page 358 it says
If the bean method performs an operation that results in a checked exception that the bean method cannot recover, the bean method should throw the javax.ejb.EJBException that wraps the original exception.
I have 2 question in this: #1. If I make a custom application exception eg:MyAppException then will the client recieve MyAppException or EJBException? #2. I want to know what is meant by "that the bean cannot recover". If the bean could recover why would throw it in the first place as an application exception?