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