| Author |
How to Catch Exception
|
dinesh thalis
Ranch Hand
Joined: Nov 19, 2008
Posts: 39
|
|
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.
|
 |
Rodrigo Lazoti
Greenhorn
Joined: Mar 13, 2009
Posts: 9
|
|
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!
|
Rodrigo Lazoti.
blog: http://www.rodrigolazoti.com.br
|
 |
Rodrigo Lazoti
Greenhorn
Joined: Mar 13, 2009
Posts: 9
|
|
|
duplicate message. sorry...
|
 |
Yair Ivan
Greenhorn
Joined: Jul 13, 2008
Posts: 15
|
|
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.
|
SCJP 6.0, SCBCD 5.0, SCDJWS 5.0
|
 |
dinesh thalis
Ranch Hand
Joined: Nov 19, 2008
Posts: 39
|
|
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?
|
 |
Jaikiran Pai
Marshal
Joined: Jul 20, 2005
Posts: 8208
|
|
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:
|
[My Blog] [JavaRanch Journal]
|
 |
dinesh thalis
Ranch Hand
Joined: Nov 19, 2008
Posts: 39
|
|
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.
|
 |
 |
|
|
subject: How to Catch Exception
|
|
|