问题标签 [controller-advice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 自定义 - ConstraintViolationException - SQL 异常
我有一个自定义建议来处理从REST API 错误处理复制的控制器的异常以及处理 DataIntegrityViolationException 的方法:
ApiError - 构造函数
发生错误时,响应会显示如下消息:
问题是消息没有向消费者显示真正的问题,因为真正的问题在 ( ex.getCause().getCause().getMessage()
) 内部:
我想处理这样的消息:“记录仍然有来自其他表的引用”;
是否有任何自定义处理程序异常可以以更具体的方式处理 sql 异常?
spring-boot - servlet [dispatcherServlet] 在路径 [/api] 的上下文中的 Servlet.service() 引发异常 java.lang.IllegalArgumentException
为什么在 @ControllerAdvice 带注释的类中没有处理像上面这样的异常
java - Java Spring ExceptionHandler 控制器语法和良好实践
我想在 Spring 中正确处理我的异常,所以我有一个关于 exceptionHandler 语法的问题:如果它们被异常处理程序捕获,是否可以在控制器中抛出特定异常?
进一步来说 :
这是例外:
这是具有 UnknownUserException 特定方法的 ExceptionHandler :
下面是一个可能引发该异常的映射示例:
userService.findById(id) 可能会抛出 UnknownUserException。
据我了解,如果服务引发特定异常,controllerAdvice 会“覆盖”控制器,但是,我应该如何处理我的控制器?我应该再次抛出异常(如上)还是捕获特定异常并返回 ResponseEntity(HttpStatus.NOT_FOUND) ?
java - 在 ControllerAdvice 中捕获 ValidationException 而不是自定义异常
我试图在我使用这样的注释构建的自定义验证器中引发异常:
ValidExtractionDate注释:
提取日期验证器:
正如您在上面看到的,当 localDate 无效时会引发 InvalidExtractionDateException 类型的异常:
无效提取日期异常:
在我的 ControllerAdvice 里面我有这个:
不幸的是,在抛出异常之后,AdviceController正在调用globalExceptionHandler()方法而不是invalidExtractionDateException()方法。
这是我在控制台上得到的:
spring-boot - Spring Boot 从 Controller Advice 获取请求正文导致空字符串
我正在开发一个弹簧启动应用程序。我想保存 Unexpected(500 Internal server errors) 以便轻松获取错误元数据。所以 :
1-我为意外情况添加了一个异常处理程序。
2- 我添加了过滤器以便能够多次阅读内容。
3-最后我试图从中获取请求正文HttpServletRequest
并获取空正文。
我检查了我在上面第 2 项中共享的doFilterInternal方法。在调试模式下,我在第 3 项运行相同的代码,我得到了请求正文。但我不能从控制器的建议中得到。我该如何解决这个问题?
java - 如果springboot中的路径参数不是Long,如何抛出NoHandlerFoundException
目前,有一个 GetMapping 如下
现在如果有人访问 http://localhost:8080/api/animal/1,它会返回动物。
但是如果有人在没有 Long 变量作为路径参数的情况下访问此端点,我需要抛出 NoHandlerFoundException,这意味着像这样 http://localhost:8080/api/animal/asdsad
如果有人能告诉我实现这一目标的方法,那将不胜感激
我也有如下全局异常处理
}
java - Spring Boot:RestControllerAdvice:处理包装的异常
假设我们有这样的@RestControllerAdvice
-annotated 类:
对于已知的WrapperException
,是否有可能以某种方式重新调度包装的异常?
我尝试了几件事,例如重新抛出包装的 excption 或显式调用我们的 ErrorController 的自定义方法并在那里重新抛出异常,但到目前为止没有运气。
java - Spring Boot 404:未捕获控制器建议中未发现异常的处理程序
因此,当用户尝试调用我的应用程序未知的 url 时,我试图发送自定义答案。为此,我首先添加到我的application.properties(在主文件夹和测试文件夹中)
因此,如果没有找到处理程序,则会引发异常。此异常应为NoHandlerFoundException类型
然后我在我的控制器建议中添加了一个自定义异常处理程序我的控制器建议(简化)
使用它,在我的测试中使用以下方法调用未知 url 时:
我进入调试控制台:
o.s.web.servlet.PageNotFound : No mapping for GET /ttt
虽然,答案没有我的自定义错误消息,因为我也进入调试控制台:
然后我尝试了
但随后出现非法状态异常:Failed to load application context is throwed with cause
IllegalStateException:Ambiguous @ExceptionHandler method mapped for [class org.framework.web.servlet.NoHandlerFoundException]
另外,当我在我的处理程序中放置断点并调试我的测试时,执行永远不会在任何断点处停止。