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

Yasuo Higa [E-MAIL ADDRESS DELETED]
2009年 1月 7日 (水) 11:18:11 JST


ひがです。

> 黒川です。
> 
> 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の機能で、このような事は可能でしょうか?
> 
例外のスタックとレースの中身を解析すれば、
例外が発生したクラス名とメソッド名を取得できます。
Log4jがこの方法をとってますね。


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