问题标签 [exceptionhandler]

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.

0 投票
1 回答
232 浏览

java - Tomcat:ExceptionHasndler 不适用于 MultiPartException,但适用于 IllegalArgumentException

我有这样的控制器:

在配置中我有设置:

这意味着MultipartException如果文件超过 100MB,spring 会抛出。

为了处理这个异常,我写了处理程序:

如果出现错误,此代码会调用(我在调试中看到它)

但在浏览器中我没有看到响应:

在此处输入图像描述

在此处输入图像描述

我用谷歌搜索了很多时间,看起来一切都很好。我尝试为 IllegalArgumentException 添加处理程序:

我上传的文件小于 100mb。在这种情况下,结果不同:

在此处输入图像描述

但无论如何响应代码是错误的。

有什么问题?

附言

我试过了:

它看起来和这里一样:

如何在 Spring Boot 中处理最大文件大小异常?

PS2

我找到了解决方法,但它看起来像 sring 中的错误:

我添加了依赖项:

注册bean:

并写道:

0 投票
2 回答
5246 浏览

java - Spring boot @RequestBody 与 @Valid- ExceptionHandler 用于 MethodArgumentNotValidException

我想将@Valid 注释与@RequestBody 注释一起使用,并在我自己的用@ExceptionHandler 注释注释的方法中处理错误。我想总是返回 ReponseEntity 的实例。但是当我为 MethodArgumentNotValidException 创建 ExceptionHandler 时,我无法启动我的应用程序。我的控制器如下所示:

我的全局异常处理程序如下所示:

当我启动我的 SpringBoot 应用程序时,我得到了这个:

对于另一种类型的异常,一切正常,但我无法为 MethodArgumentNotValidException 创建 ExceptionHandler。我做错了什么?

0 投票
1 回答
219 浏览

winapi - 如何在UnhandledExceptionFilter函数winapi中获取callStack

如何获取导致错误的程序上下文的`callstack(不是未处理的异常调用堆栈)

例如:

0 投票
1 回答
4434 浏览

java - spring是如何管理ExceptionHandler优先级的?

给这个控制器

两个ExceptionHandler都匹配,IllegalArgumentException因为它是Exception类的孩子。

当我到达/test端点时,该方法handleIllegalException被调用。如果我抛出 a NullPointerExceptionhandleException则调用该方法。

spring如何知道它应该执行handleIllegalException方法而不是handleException方法?当多个ExceptionHandler匹配一个 Exception时,它如何管理优先级?

(我认为顺序或ExceptionHandler声明很重要,但即使我handleIllegalException之前声明handleException,结果也是一样的)

0 投票
1 回答
380 浏览

c# - WebApi v2 ExceptionHandler 不适用于 HttpPost

为什么在调用 HTTP 方法发布时从不调用自定义 ExceptionHandler 而是标准响应

这是我的代码

WebApiConfig.cs

异常处理程序.cs

全球.asax.xs

我的控制器

当我调用 localhost:xxxx/api/v1/g/haha 时的这个响应

但是当我将 HttpPost 更改为 HttpGet 时,它对我有用。

请有人帮助我

对不起我的英语不好

更新

我发现在 localhost 中的测试不起作用但是当部署到 IIS 时它起作用了 非常感谢您的帮助

0 投票
3 回答
19427 浏览

java - 我们如何将@ExceptionHandler 与 Spring Web Flux 一起使用?

在 Spring Web 中,我们可以使用注解 @ExceptionHandler 来处理控制器的服务器和客户端错误。

我尝试将此注释与 web-flux 控制器一起使用,它仍然对我有用,但经过一番调查,我在这里发现了

Spring Web Reactive 的情况更加复杂。因为反应流是由与执行控制器方法的线程不同的线程评估的,所以异常不会自动传播到控制器线程。这意味着@ExceptionHandler 方法仅适用于直接处理请求的线程中抛出的异常。如果我们想使用@ExceptionHandler 特性,流中抛出的异常必须传播回线程。这似乎有点令人失望,但在撰写本文时 Spring 5 仍未发布,因此错误处理可能仍然会变得更好。

所以我的问题是如何将异常传播回线程。有没有关于使用 @ExceptionHandler 和 Spring web Flux 的好例子或文章?

更新:从spring.io看起来它是受支持的,但仍然缺乏一般的理解

谢谢,

0 投票
1 回答
1328 浏览

spring-boot - 异常处理程序在 Spring Boot 中不起作用

我正在使用 Spring Boot 2 开发 Rest API,我正在尝试创建一个 ExceptionHandler 但它似乎不起作用。

我有以下@GetMapping 方法:

customerRepository 它是一个扩展 CrudRepository 接口的接口。

customerNotFoundException 的 @ExceptionHandler 如下:

我还将 ResponseEntityExceptionHandler 扩展类注释如下:

问题是,当我调用数据库中不存在的 customerId 的请求时,我不仅收到 CustomerNotFoundException 消息,而且收到很长的堆栈跟踪,例如:

等等...

问题是什么?

谢谢!

0 投票
0 回答
105 浏览

ajax - Primefaces ExceptionHandler not working when view expired

My code is set up like https://www.primefaces.org/showcase/ui/misc/exceptionHandler.xhtml (only 1 button for ajax "throw view expired" implemented) and when I press that button, the dialog correctly pops up.

p:ajaxExceptionHandler is registered for 2 types, 1) javax.faces.application.ViewExpiredException, 2) java.lang.Throwable

But when I wait until view actually expires and press the SAME button, no dialog pops up. Browser debug tells me the ajax reponse is:

What can go wrong?

0 投票
1 回答
28 浏览

json - 在 RestCoroller 中添加 JSON 消息

我想在 REST 控制器类(方法)上添加 JSON 消息。例如我有删除方法看起来像:

我想返回已删除的消息人(可能是 id 数)。我应该使用 ExceptionHandler 吗?或者我可以使用 exceptionHnadler 来做到这一点吗?

0 投票
0 回答
407 浏览

java - 防止 Spring Boot 异常处理程序将我的 JSON 重新格式化为字符串并转义引号

我发现在 Spring Boot 2.0.3 中,传递给异常处理程序并返回到前端的 JSON 错误消息将被格式化为字符串而不是 JSON,并\在每个双引号之前转义(即,{"foo":"bar"}将是"{\"foo\":\"bar\"}".

具体来说,我有一个将 ajava.util.Map转换为 JSON 字符串的方法。方法是:

而这个测试:

测试总是通过,即该方法运行良好并且可以将地图转换为正确的 JSON。

现在,如果我直接从某个@RequestMapping方法返回到 RESTful 端点(从 Postman 测试),则返回的值是 JSON,没有任何引号。

就像是:

将返回:

但是,如果我将格式错误的参数传递给该方法,org.springframework.web.bind.MethodArgumentNotValidException则会发生异常并被此异常处理程序捕获:

而且,返回的不是 JSON,而是带引号和转义的字符串,例如:

我知道异常被捕获,因为我在日志中看到了这些:

我怎样才能防止这种情况?

处理程序和端点之间是否有一些拦截器?