问题标签 [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.
java - 具有不同返回类型的异常处理程序,相同的错误
所以,这是我第一次在这个论坛上提问,我希望你们能帮助我,如果我的帖子与其他人有相似的话题,我很抱歉。
我的问题是,如果我有这个异常处理程序(Spring-mvc):
正如我们所看到的,它返回一个响应,如果我有不同的返回类型,比如说ResponseList,但是同一个异常MyException是否也会识别返回类型?还是只承认它的错误?
谢谢,希望听到你们的好消息和答案。
spring - Spring @ControllerAdvice ExceptionHandler 基于内容类型
我们需要在所有端点中同时支持 html 和 json 响应。
html 将由我们自己的前端应用程序使用,而 json 将由第三方 API 集成使用。
我们已经使用 ContentNegotiatingViewResolver 分别将 JstlView 和 MappingJackson2JsonView 用于 html 和 json 内容,并且效果很好。使用单个控制器方法,我们得到基于 url 扩展名的 html/json 输出。
我们希望通过@ControllerAdvice / @ExceptionHandler 为全局 ExceptionHandler 提供类似的技术。但这似乎没有考虑到内容类型,然后才解析为视图。
如何使 ExceptionHandler 选择正确的视图以基于 url.extension 生成 html 或 json ?(注意:我不想使用 @ResponseBody 或 ResponseEntity,因为我需要 ModelAndView 来输出基于 html 的错误页面)
我可以创建一个自定义视图解析器来为 ExceptionHandling 执行此操作吗?如何在 Spring 配置中将它与用于正常响应的 ContentNegotiationViewResolver 一起缝合?
java - Spring HttpMessageConverter 根据@ExceptionHandler 响应内容类型
我有一个基于Spring MVC的 Rest web 服务。我使用 a@RestControllerAdvice
来处理从我的 s 抛出的异常@Controller
。
控制器
调用示例如下
一种可以产生 3 种媒体类型的 基本APPLICATION_OCTET_STREAM_VALUE
方法:APPLICATION_XML_VALUE
APPLICATION_JSON_VALUE
customException
异常处理程序
my 的定义@RestControllerAdvice
如下:
根据请求accept header,如果没有设置accept,则@ExceptionHandler
返回null body和NOT_ACCEPTABLE
http响应状态,ErrorDto
如果accept是typeAPPLICATION_JSON
或者JaxbElement
ofErrorDto
是accept是type ,则返回type对象APPLICATION_XML
请注意,当响应包含正文时,我指定了响应的内容类型。
问题
我的问题是当客户端使用多个接受标头进行调用时,Spring 会尝试HttpMessageConverter
根据接受标头而不是响应内容类型来获取。下面是一个例子:
当客户端调用一个引发异常(然后返回 errorDto)的方法时,具有多个 Accept 标头,如下所示:
Spring 未按预期返回带有 XML 格式错误的响应。它寻找一个Octet-Stream <-> JaxbElement
不存在的转换器,并且不尝试根据响应内容类型找到转换器。
如何根据响应内容类型强制 Spring 使用转换器?
我在用着 :
- Spring Boot 1.4.0.RELEASE
angularjs - 从 chrome repl 触发 angular $exceptionHandler
我正在覆盖默认值$exceptionHandler
,类似于在 Angular 网站上看到的内容:https ://docs.angularjs.org/api/ng/service/ $exceptionHandler
效果很好。
但是,我半不清楚如何“观察”这个过程,而不是$emit
处理程序明确将错误(变幻或其他)传递到 $exceptionHandler (注入到 `.directive || 中的命名事件) .config || .service | .run || 等...)。
TL:DR - 我想知道如何模拟一个未处理的异常,默认的角度 $exceptionHandler 意味着要拾取 - 特别是从 chrome 控制台/REPL?
angularjs - strictdi 上的 $exceptionHandler 装饰器 - 循环和 strictdi 错误
我无法将我的 $exceptionHandler 格式化为 strictdi。我正在尝试修改异常处理程序,以便将角度错误记录到我们的服务器并让我们知道某些页面崩溃。对于下面的代码,我遇到循环依赖错误。在下一组代码中,我得到了 strictdi 错误。请注意,我们使用 gulp 缩小代码。
此处的错误:找到循环依赖项:$rootScope <- $http <- serverlog <- $exceptionHandler <- $rootScope
然后对于这组代码,出现了 strictdi 错误:serverlog 没有使用显式注释,并且不能在严格模式下调用
asp.net-web-api - 如何在 MoQ WebAPI 中抛出和获取异常对象
我有一个启用 OData 的 WebAPI,其中包含
- TestController:它包含一个自定义操作方法。
- WebApiExceptionHandler:WebApi中的自定义异常处理程序,注册在WebApiConfig.cs中。
- ITestManager:接口
TestManager:实现 ITestManager 的类。此类处理数据的所有业务逻辑。WebAPI 控制器 TestController 有一个调用这个类的函数。
此外,还有一个使用 MoQ 框架进行测试的 TestWebAPI 项目。TestMethod "Test_UpdatePackageVendorOnException__Success" 使用 MoQ 设置在 UpdateTestQuantity 方法中抛出异常。但是我调试这个测试方法的时候,抛出异常的时候,调试器并没有指向WebApiExceptionHandler类。理想情况下,API 中发生的所有异常都在 WebApiExceptionHandler 类中处理
我面临的问题是,在我的测试方法中,我想对 WebApiExceptionHandler 返回的异常对象进行测试。但是由于控件永远不会进入 WebApiExceptionHandler,所以我不能这样做。
如何修改代码,以便在 TestMethod 中测试 WebApiExceptionHandler 返回的自定义对象。
WebAPI 代码:
WebApiTest 项目
visual-studio-2017 - "View Details " missing form Exception handler VS 2017
This could easily be the same as: 'View Details' missing from exception assistant
But I am seeing it in VS 2017. Flipping "Use Managed Compatibility Mode" doesn't seem to make a difference.
This is what the window looks like:
With "View Details" missing, copy details only gives me the top level exception too.
If I wrap the code in a "try", "catch" block and use the debugger/immediate window to expand the exception object I can see important details like "inner exception". So why is this information hidden from me in the handler?
Additional Details
I am working on a Xamarin project and this error was located in a property called from a .net core portable library, the error in this case, was to do with NLog (a third party nuget package) that was installed in both the library and the andorid project but was possibly failing due to bad config. The exception was raised when remote debugging on an Android device.
I have seen this issue with the exception handler in all exceptions I have had so far (3 / 4, its a new machine)
c# - 如何在 ASP.net web-api 中使用自定义异常处理程序
我正在尝试了解自定义异常处理程序,但没有掌握它。我尝试实现自定义异常处理程序,如以下页面中所述:
https ://www.exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/
https:// docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/web-api-global-error-handling
现在我的代码是:
然后我尝试调用我显然做错的异常处理程序:(这我可能不明白<<
如您所见,发生错误是因为异常不是异常处理程序,但我不知道如何通过自定义异常处理程序抛出异常,因为它没有得到任何解释。
谁能用一个小例子向我解释一下?
java - ExceptionHandler 调用但不影响 http 响应
我有以下方法:
我看到(在调试中)它调用但在浏览器中我看到 500 错误(而不是 HttpStatus.BAD_REQUEST)。http响应的内容包含异常信息(而不是HttpErrorDTO
结构)。
我的代码有什么问题?
java - Java8 中的 Spring-boot @ExceptionHandler 未达到
我@ExcpetionHandler
在我的 Java8 应用程序中使用。我无法使用此功能。在所有异常情况下,HTTP 响应始终为 500(我在异常中插入了消息),并且它忽略了@ExceptionHandler
方法。
当我的同事使用 java 7 编译器运行该应用程序时,它可以工作。
Java 8 无法使用 @ExceptionHandler 注释的任何原因?
控制器:
validateInput()
正在投掷InputParameterException
。InputParameterException
被 try/catch 捕获,再次抛出它。
pom.xml 中的相关部分:
此代码无法@ExceptionHandler
与 Java8 联系。当切换到 Java7 时,无需任何代码更改,它就可以工作。
更新:
我收到的错误信息是:
我删除了@Controller
注释,我也尝试使用解析器,但它没有用。
解析器的代码,与其余控制器类在同一个包中: