Forums Register Login

How to Catch Exception

+Pie Number of slices to send: Send
I'm using EJB3. As usual, i'll use the EntityManager's API to do CRUD operation, such as, em.persist(), em.merge() etc.

So now I want to catch exception while performing em.persist() and do my own thing.

If I used @TransactionManagement(TransactionManagementType.BEAN) I can handle exception below show my code.




Problem is if I use @TransactionManagement(TransactionManagementType.CONTAINER) I can't catch exception, I used same code( display above), how can I overcome this problem.

If you can provide more details about exception handling in EJB3( reference link) it's more helpful to me.
+Pie Number of slices to send: Send
You can handle/catch exceptions in BMT or CMT Enterprise Beans.
See the links below more about transactions and handling of exceptions:

http://java.sun.com/javaee/5/docs/tutorial/doc/bncih.html
http://java.sun.com/javaee/5/docs/tutorial/doc/bnbpj.html

And I recommend you check the specs:

http://jcp.org/aboutJava/communityprocess/final/jsr244/index.html


Best Regards!
+Pie Number of slices to send: Send
duplicate message. sorry...
+Pie Number of slices to send: Send
Hi.


Thanks Rodrigo for information.

I add the following items:

- In EJB 3 in Action section 6.2.5 Transaction and exception handling.
- In Entreprise JavaBeans 3.0 (O´Relly) Section 16.6 Exceptions and Transactions.

By.
+Pie Number of slices to send: Send
I read this tutorials but still I'm fail



I'm using container manager transaction and persist account details. if some body try to persist incorrect account information I want to give customer exception(message) instead of system generated message. Above code show that but this not work. please help me how to it?
+Pie Number of slices to send: Send
With CMT, the actual queries are fired on transaction completion, i.e. after the method exits. So the catch block will never be able to catch such exceptions which happen within a transaction synchronization callback. You'll see the difference if you add a em.flush after the em.persist. That way, the queries will be fired immediately instead of waiting for tx synchronization:

+Pie Number of slices to send: Send
Below show how I try to handle this issue. Is it write or wrong. Using this way I can succeed some extend, Is there any suggestion regarding this.

Thanks tiny ad, for helping me escape the terrible comfort of this chair.
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 3002 times.
Similar Threads
question about application-managed Entity manager
java.lang.IllegalStateException: Exception Description: Cannot use an EntityTransaction while using
JTA Application Managed EntityManager question
How do I specify that an Session Bean is BMT using annotations?
EJB3 noob and User Managed Transaction
More...

All times above are in ranch (not your local) time.
The current ranch time is
Apr 16, 2024 08:26:12.