public interface ExceptionAware
Commandの処理で発生した例外をハンドリングするためのインタフェース。
Command.execute(RequestContext)内で例外処理することもできるが、
Intercepter内で発生した例外も含めて捕捉したい場合は、Commandの実装クラスにて、
当該interfaceも合わせて実装するようにする。
public class ExpHandleCmd implements Command, ExceptionAware {
//Commandの処理本体
public String execute(RequestContext request) {
:
:
throw new IllegalArgumentException("erorr");
}
//例外処理の実装メソッド
public String handleException(RuntimeException exception, RequestContext request) throws RuntimeException {
if (exception instanceof IllegalArgumentException) {
//例外処理を記述
:
:
}
//Commandの処理結果としてステータスコードを返す、もしくは例外を再スロー
return "ERROR";
}
}
| 修飾子とタイプ | メソッドと説明 |
|---|---|
java.lang.String |
handleException(java.lang.RuntimeException exception,
RequestContext request)
Command.execute(RequestContext)内、もしくはCommandInterceptor内で例外が発生した場合、 当メソッドが呼び出される。 |
java.lang.String handleException(java.lang.RuntimeException exception,
RequestContext request)
throws java.lang.RuntimeException
Command.execute(RequestContext)内、もしくはCommandInterceptor内で例外が発生した場合、 当メソッドが呼び出される。
返り値として、Commandのステータスを返却するか、例外を再スローするようにする。exception - 発生した例外request - RequestContextのインスタンスjava.lang.RuntimeException - 例外処理後、framework側に例外を通知したい場合はスローする