I was about to suggest that in case of transactional conditions "TransactionRolledbackException" could be thrown. But while writing the comment here, I realized that client transaction is never shared with Asynchronous methods. So, Asynchronous methods would never throw "TransactionRolledbackException".Regardless of what kind of exception in thrown by the bean method, the client always gets ExecutionException. Note that this is different from what happens for regular (non-asynchronous) method - if it throws an application exception, the client receives the same application exception and if it throws a system exception, the client gets EJBException.
I hope this helps!
Regards,
Prakash Yaji