有人知道使用@ExceptionHandler
包装异常的最佳/最简单方法吗?
我有一个自定义的org。springframework。果心转换转换器。转换器
,用于转换@PathVariable
,如果输入超出标准范围,则会引发自定义运行时异常。
这最终被Spring包装在一个ConversionExc0019
中,我可以在我的控制器建议中使用@ExceptionHandler(ConversionException.class)
来处理。
但是我必须。getCause()
并使用instanceof
确定底层异常是否是我感兴趣的类型。此时,我可以使用对的响应。sendError()
但是如果我有一个不同的底层异常,我不知道该怎么办?
如果我重新引发原始异常,我会收到一条令人讨厌的日志消息“调用@ExceptionHandler方法失败”,感觉不对劲。
是否有一种简单的方法来执行类似于@ExceptionHandler(MyCustomConversionException.class
)的操作,其中MyCustomConversionException
是@ControllerAdvice
中的ConversionException
的原因?
谢谢
创建一个控件顾问类@控件顾问
,这将允许您创建多个@ExceptionHandler
条目。每个方法可以引用单个异常或多个异常。
例如:
@ControllerAdvice
public class ExceptionController extends ResponseExceptionHanlder {
@ExceptionHandler(value = { NumberFormatException.class })
protected ResponseEntity<Object> handleNumberFormatExcpetion(Exception ex, WebRequest request) {
//TODO: Handle exception
return handleExceptionInternal(ex, 'error', new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
}
@ExceptionHandler(value = { InvalidClassException.class })
protected ResponseEntity<Object> handleNumberFormatExcpetion(Exception ex, WebRequest request) {
//TODO: Handle exception
return handleExceptionInternal(ex, 'error', new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
}
@ExceptionHandler(value = { MaxUploadSizeExceededException.class, SizeLimitExceededException.class })
protected ResponseEntity<Object> handleNumberFormatExcpetion(Exception ex, WebRequest request) {
//TODO: Handle exception
return handleExceptionInternal(ex, 'error', new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
}
}
我找不到一个好的解决方案:在我的Spring Boot应用程序中,作为一个方法,我需要定义一个处理程序,不是针对特定的异常,而是针对由特定异常(即包装异常)引起的任何异常。 例句:有时候我会这样: 我的自定义是我在一些Hibernate EventListener的预更新方法中抛出的异常,直接异常是无法发生持久性。 但是,以下尝试使用我的自定义异常的方法从未达到: 这里有一个类似的线程,答案是错误
问题内容: 我可以看到捕获了一个可以打印的异常,尽管这种异常一直存在。 我是否需要将其设置在某个地方,或者缺少将原因设置为null的东西? 问题答案: 一个例外的属性和。该消息是一种描述,或多或少准确地告诉人类读者出了什么问题。的是不同的东西:它是,如果有的话,另一个(嵌套)。 如果我们使用这样的自定义异常,通常会使用该概念: 编辑-响应@djangofans评论。 标准是嵌套表达式(原因)也将与
问题内容: 我的logcat中出现这种错误。尽管出现此错误,但我的项目运行正常。所以我只想澄清有关此错误的这些内容: 问题答案: 我认为当您已经安装了以前的版本并从eclipse运行应用程序时会发生这种情况?如果您在从Eclipse重新运行之前卸载了该应用程序,则不会发生这种情况。另外,这不会造成任何问题。
我有例外: 其他自定义异常从它继承: 处理它们。现在看起来就像是在那里: ExceptionHandler正确处理所有自定义异常,排除 在验证jwm-token时,此异常只在一种情况下抛出。 这样,Console中有3个stacktraces日志: 仅前端重装 请告诉我,怎么了。 附注。完整StackTrace: null 2019-07-14 17:04:38.791错误24060---[nio
我正在使用@ExceptionHandler来管理我的所有异常,并为任何抛出异常的REST API返回一个JSON响应。目前我管理两个异常,第一个是ResourceNotFoundException,它可以工作,但第二个是FileExtensionException,它不工作。它在eclipse控制台中抛出这个异常,而在rest响应中抛出任何东西。 2015-09-21 09:09:05.197错
我正在使用寻呼机适配器来显示视图寻呼机中的图像,这将在异步任务中由bitmap工厂下载。 pageradapter类: 我的日志: 02-08 18:49:22.55418345-18345/奥托涅。dg10 E/AndroidRuntime:致命异常:主java。autogenie上的lang.NullPointerException。dg10。pageradapter$LoadImage。au