我正在寻找一种方法来处理与前端的通信,以防响应状态(ResponseStatus)导致的错误,从而
等等
在我们的Api网关中,我们有一个RextExceptionController
(@控件建议
),我们在其中处理异常并将自己的DTO返回给前端。
如果我以单个异常为目标(参见下面的示例),那么一切都可以正常工作,但如果我只想以响应HTTP状态为目标,那么这显然不起作用。
@ExceptionHandler(MethodArgumentTypeMismatchException.class)
protected ResponseEntity<Object> handleMethodArgumentTypeMismatch(MethodArgumentTypeMismatchException ex) {
ApiError apiError = new ApiError(HttpStatus.BAD_REQUEST);
apiError.setMessage("Bla bla Status 400");
return buildResponseEntity(apiError);
}
@ExceptionHandler(HttpMediaTypeNotSupportedException.class)
protected ResponseEntity<Object> handleHttpMediaTypeNotSupported(
HttpMediaTypeNotSupportedException ex,
HttpHeaders headers,
HttpStatus status,
WebRequest request) {
ApiError apiError = new ApiError(HttpStatus.UNSUPPORTED_MEDIA_TYPE);
apiError.setMessage("Bla bla Status 415");
return buildResponseEntity(apiError);
}
这不是一种可持续的处理方式,因为来自不同团队的未来开发(应用程序基于微服务架构)可能会引发任何类型的异常,我不想在所有可能的异常之后运行,而是基于响应状态来运行处理程序。
有什么建议/想法吗?
干杯
您可以使用http处理程序拦截器在请求完成后拦截http响应,并根据您的状态执行一些操作,请查看本文https://www.baeldung.com/spring-mvc-handlerinterceptor.
问题内容: 我有以下代码: 我想捕获HTML响应?我该怎么做呢?我可以向form1.submit方法注册任何回调函数吗? 问题答案: 使用普通的javascript,您将无法轻松做到这一点。发布表单时,表单输入将发送到服务器,页面会刷新- 数据在服务器端处理。也就是说,该函数实际上不返回任何东西,它只是将表单数据发送到服务器。 如果您真的想用Javascript获得响应(无需刷新页面),则需要使用
本文向大家介绍如何捕获 setTimeout 异常相关面试题,主要包含被问及如何捕获 setTimeout 异常时的应答技巧和注意事项,需要的朋友参考一下 No description provided.
问题内容: 发现在Java 1.6(以及从Eclipse)上运行时,吞没了该方法中的异常之后,我试图找到一种捕获这些异常的方法,而不会在我的所有实现中都添加throw / catch 。 该API建议覆盖应对此有所帮助: 导致此future报告一个ExecutionException,并以给定throwable作为其原因,除非已经设置或取消了此Future。计算失败时,run方法在内部调用此方法。
我在我的控制器中使用javax验证,带有。当服务器接收到无效数据时,它会抛出错误,但我想处理该错误并返回自定义格式的错误。我无法在控制器建议中捕获异常。我使用的是Spring webFlux,因此无法使用bindingResult。我如何处理该异常?这是我的代码 控制器 资源 错误处理程序
我试图编写“好的”python并捕获一个S3,但没有这样的关键错误: 但是NoSuchKey没有定义,我无法跟踪到需要定义的导入。 是但是botocore.errorfactory导入的给出了一个错误,botocore.errorfactory导入的
我使用的是python 2.7和tornado 4.5 以下代码不起作用:除块不被触发。我不明白为什么? 相反,我可以捕获;但是我没有我如何调用的上下文。在我的例子中,更有意义的是引发一个较低级别的异常,并且调用者根据输入将其转换为人类可读的错误。 我是否只需要重构它来调用较低级别的gen.Task?那会很烦人:/