非チェック例外 and チェック例外

① システムレベル例外 非チェック例外

② アプリケーション例外 非チェック例外

③ アプリケーション例外 チェック例外

④ リソース例外 チェック例外

 

① 空参照、ゼロ除算など、アプリケーション不具合発生した際に、JVMによってスローされた例外です。Java.lang.RuntimeExceptionクラスかそのサブクラスを指します。

② ありえない条件分岐やデータの不整合など、アプリケーション的な異常が発生した際にスローされた例外です。java.lang.RuntimeExceptionクラスかそのサブクラス、あるいは、java.lang.RuntimeException継承した独自の例外クラス。

③ 残高不足や期限切れなど、ビジネス上のルール違反が発生した際にスローされた例外です。この場合は、呼び出し元で適切に回復処理を行う必要がある。java.lang.Exception継承した独自の例外クラス。

④ 外部リソースアクセスで異常が発生した際に、JVM、JavaEEサーバ、JDBCドライバ等によってスローされた例外です。具体的に、java.io.IOException,java.sql.SQLException,java.jms.JMSExceptio,javax.naming.NamingException

 

非チェック例外発生の場合、EJBコンテナは、Rollbackし、呼び出し元に、受け取った例外を、javax.ejb.EJBException(ローカル呼び出しの場合)か、javax.rmi.RemoteException(リモートで呼び出しの場合)でラップして返します

チェック例外発生の場合、Rollbakcしません。ただし、明示的に「ロールバックマーク」をつけていた場合、rollbackします。呼び出し元に、受け取った例外をそのまま再スローします。チェック例外をスローするためには、メソッドにthrows宣言が必要です。

posted on 2017-02-14 10:56  sdfczyx  阅读(78)  评论(0)    收藏  举报