2017-03-11 6 views
0

spring-data:4xx、5xxのapi/application固有のエラーメッセージを返すためのインターセプト方法spring-data-rest:4xx、5xxのapi/application固有のエラーメッセージを返すためのインターセプト方法

スプリングデータ休憩: スプリングコントローラを使用しないと、SQLエラー/例外をインターセプトしてより意味のあるメッセージをAPI呼び出し側に返す方法が見つかりません。

答えて

0

次の例のように、例外ハンドラを使用することができます。

@ControllerAdvice 
public class ExceptionsHandler { 

    @Order(Ordered.HIGHEST_PRECEDENCE) 
    @ExceptionHandler(DataIntegrityViolationException.class) 
    public ResponseEntity<?> conflict(DataIntegrityViolationException e) { 
     return new ResponseEntity<>(new errorMsg(e.getRootCause().getMessage()), CONFLICT); 
    } 

    ... 

    @Order(Ordered.HIGHEST_PRECEDENCE + 4)   
    @ExceptionHandler(NotFoundException.class) 
    public ResponseEntity<?> handleNotFoundException(NotFoundException e) { 
     return new ResponseEntity<>(new errorMsg(e.getMessage()), NOT_FOUND); 
    } 

    ... 

    @Order(Ordered.LOWEST_PRECEDENCE) 
    @ExceptionHandler(Exception.class) 
    public ResponseEntity<?> handleException(Exception e) { 
     return new ResponseEntity<>(new errorMsg(e.getMessage()), INTERNAL_SERVER_ERROR); 
    } 
} 

便利なリソース:
Spring Boot - Error Handling
Exception Handling in Spring MVC
Error Handling for REST with Spring

関連する問題