[Seasar-user:19921] Re: [S2Dao]oracleエラー取得について
佐野 詠一郎
[E-MAIL ADDRESS DELETED]
2010年 6月 25日 (金) 13:14:13 JST
小林さん
対応ありがとうございます。
参考にさせて頂きます。
----- Original Message -----
From: "Koichi Kobayashi" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Friday, June 25, 2010 12:30 PM
Subject: [Seasar-user:19919] Re: [S2Dao]oracleエラー取得について
> 小林 (koichik) です.
>
> Date: Fri, 25 Jun 2010 11:01:22 +0900
> From: 佐野 詠一郎 <[E-MAIL ADDRESS DELETED]>
> To: <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:19918] [S2Dao]oracleエラー取得について
>
>> S2DaoでSQL実行時に発生した
>> oracleエラーコード、メッセージをserviceで取得する方法をご教授願います。
>
> SQLException の getErrorCode および
> getMessage() で取得できます.
>
> S2Dao は SQLException を SQLRuntimeException
> 等にラップしてスローするので,SQLException を
> 得るにはキャッチした例外の getCause() を
> 辿る必要があります.
>
> S2JDBC の StandardDialect クラスがまさに
> そういう処理をしているので参考にどうぞ.
>
> protected Integer getErrorCode(Throwable t) {
> SQLException cause = getCauseSQLException(t);
> if (cause != null) {
> return cause.getErrorCode();
> }
> return null;
> }
>
> protected SQLException getCauseSQLException(Throwable t) {
> SQLException cause = null;
> while (t != null) {
> if (t instanceof SQLException) {
> cause = SQLException.class.cast(t);
> if (cause.getNextException() != null) {
> cause = cause.getNextException();
> t = cause;
> continue;
> }
> }
> t = t.getCause();
> }
> return cause;
> }
>
>
>
> --
> <component name="koichik">
> <property name="fullName">"Koichi Kobayashi"</property>
> <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
> <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内