1. やりたいこと
- ExceptionHandlerで例外処理を設定する
- どのControllerのどのMethodで例外が発生したかを知る
2. バージョンや条件など
- Java 11
- Spring Boot 2.1.1.RELEASE
3. やったこと
- ExceptionHandlerアノテーションを付けたメソッドのパラメータに
HandlerMethod handlerMethod
を追加する
MyExceptionHandler.java
@ExceptionHandler(MyException.class)
public ResponseEntity<String> myExceptionHandler(
MyException exception,
HandlerMethod handlerMethod) {
// 省略
}
- HandlerMethodについては Javadoc を参照
-
getMethod()
やgetMethodAnnotation(java.lang.Class<A> annotationType)
が使えそう
4. ドキュメント
- Spring Docs - 1.3.6. Exceptions > Method Arguments
- Javadoc - org.springframework.web.bind.annotation.ExceptionHandler
- Spring Docsに書いてあった。Javadocには書いてなかった。
Principal
とかも書いてないね。
おわり。