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側に例外を通知したい場合はスローする