我有一个rest api:
@RestController
…
@PostMapping(value = "/v1/ms/prop")
public @ResponseBody ResponseEntity<Object> orch(@RequestBody @Valid Request request){
Response response = serv.prop(request);
return ResponseEntity.ok(response);
和serv.prop(请求):
Response response = new Response ();
try {
calculate(**data**);
callExternalService();
} catch (Exception e) {
**//intercept status error code**
**// writeError(data,errorStatusCode)**
} finally {
writeAuditOperation(auditLog);
MDC.clear();
}
在catch中,我想,只在这个api rest中,拦截错误类型(400,404,500,502 ecc ecc),并调用外部服务记录此错误。
Thanks for the help
与其手动处理控制器中的异常,不如尝试@ExceptionHandler
.
检查:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc