[Seasar-user:1358] Re: S2Dao でエラー処理

Yasuo Higa higa
2004年 12月 14日 (火) 20:01:28 JST


<[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:1356] Re: S2Dao でエラー処理" において、
   "suga <[E-MAIL ADDRESS DELETED]>"さんは書きました:

ひがです。

> 初めまして、suga と申します。

> On Tue, 14 Dec 2004 18:50:08 +0900 (JST)
> 須賀 祐一 <[E-MAIL ADDRESS DELETED]> wrote:
> 
> 
> import org.seasar.framework.aop.interceptors.ThrowsInterceptor;
> 
> public class AlreadyExistsThrowsInterceptor extends ThrowsInterceptor {
>     public void handleThrowable(Throwable t, MethodInvocation invocation) {
>         if (t instanceof SQLRuntimeException) {
>             SQLException e2 = (SQLException) t.getCause();
>             if ("23000".equals(e2.getSQLState())) {
>                 if (e2.getErrorCode() == -104) {
>                     throw new AlreadyExistsRuntimeException(e2);
>                 }
>             }
>         }
>         throw t;
>     }
> }
> 
public void handleThrowable(SQLRuntimeException t, MethodInvocation invocation) {
    SQLException e2 = (SQLException) t.getCause();
    if ("23000".equals(e2.getSQLState())) {
        if (e2.getErrorCode() == -104) {
            throw new AlreadyExistsRuntimeException(e2);
        }
    }
}
でもっと簡単にいけます。
処理したい例外の数分、handleThrowableを書いて、最初の引数を処理したい例外の
型にします。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.



Seasar-user メーリングリストの案内