在阅读了一些关于为Spring创建自定义异常处理程序的博客文章后,我编写了以下类:
@ControllerAdvice
public class RestExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public ResponseEntity<Object> exceptionHandler(Exception e) {
HashMap<String, Object> msg = new HashMap<>(2);
msg.put("error", HttpStatus.PRECONDITION_FAILED.value());
msg.put("message", "Something went wrong");
return new ResponseEntity<>(msg, HttpStatus.BAD_REQUEST);
}
}
其目的是在JSON响应中发送msg
,而不是放弃由于任何原因引发的Spring异常。
然而,这门课不起作用。
例如,当我命中服务器API的无效终结点时,我将获得默认的响应有效载荷:
{
"timestamp": 1449238700342,
"status": 405,
"error": "Method Not Allowed",
"exception": "org.springframework.web.HttpRequestMethodNotSupportedException",
"message": "Request method 'POST' not supported",
"path": "/bad_enpoint"
}
我错过了什么?
谢谢。
@ControllerAdvice
public class RestExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public ResponseEntity<String> exceptionHandler(Exception e) {
return new ResponseEntity<>("Something went wrong", HttpStatus.BAD_REQUEST);
}
}
不会调用您的处理程序,因为您希望将异常
映射到自定义错误响应,但Spring MVC很可能已经为异常
类注册了一个异常处理程序。它还有一个可以处理HttpRequestMethodNotSupportedException
。
无论如何,覆盖整个SpringMVC异常处理/映射不是一个好主意。您应该只关心特定的异常——您定义的异常。
请阅读本文,了解SpringMVC异常处理的更多细节。
我是Spring的新手。我正在使用SpringWebMVC开发RESTAPI。对于错误处理,我得到了这个链接http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann rest spring mvc异常 我曾尝试在我的项目中使用ResponseEntityExceptionHand
我用Spring5反应式编写了一个自定义异常 我把这个叫做服务: 但是当我到达这个页面时,会抛出一个异常,但它不是404,而是一个空指针异常和一个错误500页面,但有正确的消息? AddressNotFound永远不会抛出,只有Nullpointer异常,但会抛出我的自定义消息???你能帮帮我吗? 这是我的控制器: 谢谢
我使用的是SpringBoot2.3。我遇到了一些例外情况。我想使用类在全局级别捕获异常。我能够捕获验证错误并返回自定义错误响应,但Spring似乎忽略了我的方法。这是我的课程: andler.java 下面是我抛出异常的方法: PhotoStorageServiceImp.java PhotoUploadController.java } 我在检索照片时遇到错误
我有这个方法来处理所有缺少请求头的异常,但在一个控制器中,希望接收一个json作为主体。如果它是无效的json或为null,则会使用自定义消息删除异常: {“消息”:“错误请求”,“详细信息”:[“必需的请求正文丢失:public org.springframework.http.responseentity packages.fazerlogin(packages.bodylogin)throw
问题内容: 我们正在使用Spring MVC + Spring Security + Hibernate创建一个RESTful API。该API可以生成JSON和HTML。做好弹簧安全性的错误处理让我头疼: 身份验证可以通过多种方式进行:BasicAuth,通过POST请求中的不同参数以及通过Web登录。对于每种身份验证机制,在Spring Security xml配置的名称空间元素中声明了一个过
如果 Java 提供的内置异常类型不能满足程序设计的需求,这时我们可以自己设计 Java 类库或框架,其中包括异常类型。实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。 自定义异常的语法形式为: 在编码规范上,一般将自定义异常类的类名命名为 XXXException,其中 XXX 用来代表该异常的作用。 自定义异