[Seasar-user:16593] Re: ThrowsInterceptor で例外発生箇所を特定するには
黒川博之
[E-MAIL ADDRESS DELETED]
2009年 1月 7日 (水) 11:24:01 JST
海野様
返答ありがとうございます。
>getTargetClass(invocation).getName()
>invocation.getMethod().getName()
これだと、ThrowsInterceptorが適用されているactionクラス名とメソッド名
が取得されてしまうようです。
独自例外を定義して、そのクラスにクラス名とメソッド名のプロパティを
Stringで持たせて、catch句でクラス名とメソッド名をセットするしか
無いですかね。。。
*そうなると、全ての箇所にtry catchを書く必要があるから、AOPの威力が魅力が落ちそうな予感。。。
ありがとうございました。
----- Original Message -----
From: <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, January 07, 2009 11:15 AM
Subject: [Seasar-user:16591] Re: ThrowsInterceptor で例外発生箇所を特定するには
> 海野です。
>
> AbstractInterceptorを継承していれば
> public Object invoke(MethodInvocation invocation) throws Throwable {
> 内で
> getTargetClass(invocation).getName()
> と
> invocation.getMethod().getName()
> でいけないでしょうか。
>
> 間違ってたらごめんなさい。
>
>
>
>> 黒川です。
>>
>> sastrutsのactionクラスのメソッドから、以下のようにserviceクラス
>> のメソッドを呼び出しています。
>>
>> @execute(validator = false)
>> public String execute() {
>> Employee emp = new Employee();
>> //empに値をセットするソースは省略。
>> employeeService.insert(emp);
>> }
>>
>> このときに、org.seasar.framework.exception.SQLRuntimeExceptionが発生したとし
>> ます。
>> その直後、以下のThrowsInterceptorが実行されます。
>>
>> public void handleThrowable(SQLRuntimeException e, MethodInvocation
>> invocation) throws Throwable {
>> }
>>
>> この箇所で、実際に例外が発生したクラス名とメソッド名(EmployeeService#insert)
>> を取得したいのですが
>> seasarの機能で、このような事は可能でしょうか?
>>
>> よろしくお願いします。
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内