如何知道哪个RestController抛出全局异常?

时间:2017-05-29 12:17:50

标签: rest spring-boot exception-handling

我有一个带有多个RestControllers的Spring Boot应用程序,每个RestController都根据他们调用的服务连接到不同的数据库。

如果他们中的任何一个由于某种原因无法连接到数据库,我会抛出一条消息,说明如下:

@RestController
@RestControllerAdvice
public class GlobalExceptionHandler {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    // The Network Adapter could not establish the connection
    @ExceptionHandler(value = SQLRecoverableException.class)
    public ResponseEntity<String> handleBaseException(Exception e) {
        return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).body("Service Unavailable.");
    }

}

现在,是否可以确定哪个RestController触发了此异常?

当我使用@RestControllerAdvice

时,我不知道如何将全局异常连接到Rest控制器

1 个答案:

答案 0 :(得分:1)

Spring提供两级异常处理,

<强> 1。控制器级别。
2。全球水平。

使用控制器级异常处理,如果需要根据控制器添加内容。

全局级别处理意味着处理异常而不管知道哪个控制器异常属于。

希望这能回答你的问题。最好在您的情况下进行控制器级异常处理。

评论是否需要更多信息。