[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 メーリングリストの案内