[Seasar-user:16599] Re: ThrowsInterceptor で例外発生箇所を特定するには

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 1月 7日 (水) 12:00:50 JST


あらら、そうですか。。

ちなみに、こちらではTeedaでPageクラスの
do*,initialize,prerenderメソッドに対して仕掛けていますが、
Pageから呼んだServiceで例外が発生した場合
そのServiceのクラス名とメソッド名が取れています。

海野


> 海野様
>
>>    StackTraceElement err = e.getStackTrace()[0];
>>    err.getClassName();
>>    err.getMethodName();
> System.out.println(err.getClassName());
> System.out.println(err.getMethodName());
>
> すると、これらが出力されました。
> org.seasar.framework.util.PreparedStatementUtil
> executeUpdate
>
> フレームワークのクラス/メソッドのようですね。
>
>
>
> ----- Original Message -----
> From: <[E-MAIL ADDRESS DELETED]>
> To: <[E-MAIL ADDRESS DELETED]>
> Sent: Wednesday, January 07, 2009 11:39 AM
> Subject: [Seasar-user:16595] Re: ThrowsInterceptor で例外発生箇所を特定する
> には
>
>
>> 海野です。
>>
>> もう1つだけ思いついたので、、
>>
>>    public void handleThrowable(RuntimeException e, MethodInvocation
>> invocation) throws Throwable {
>>
>> メソッド内で
>>
>>    StackTraceElement err = e.getStackTrace()[0];
>>    err.getClassName();
>>    err.getMethodName();
>>
>> というのはどうでしょうか。
>>
>>
>>> ひがです。
>>>>
>>>> 返答ありがとうございます。
>>>>
>>>> >getTargetClass(invocation).getName()
>>>> >invocation.getMethod().getName()
>>>> これだと、ThrowsInterceptorが適用されているactionクラス名とメソッド名
>>>> が取得されてしまうようです。
>>>>
>>>> 独自例外を定義して、そのクラスにクラス名とメソッド名のプロパティを
>>>> Stringで持たせて、catch句でクラス名とメソッド名をセットするしか
>>>> 無いですかね。。。
>>>> *そうなると、全ての箇所にtry catchを書く必要があるから、AOPの威力が魅力が落ちそうな予感。。。
>>>>
>>> ServiceのすべてのメソッドにInterceptorをしかけて、
>>> そこでThreadLocalにクラス名とメソッド名を格納し、
>>> ThrowsInterceptorで取り出すという方法もあります。
>>> _______________________________________________
>>> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>




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