当前位置: 首页 > 知识库问答 >
问题:

正在枚举内引发自定义异常,但流未到达@ExceptionHandler方法

戚英逸
2023-03-14
    public enum Metadata{
        AC, CD;
@jsonCreator
public static Metadata get(String value) throw customException
if(!isValid(value)){
throw customException();
}
    }

我的处理程序方法

@ExceptionHandler(customException.class)
public ResponseEntity<Response> handeljsonError(customException e){
return response;
}

当从Enum元数据抛出自定义异常时,流不会在自定义处理程序上出现,而不是它将转到httpMessageNonReadableException,这是其他覆盖方法,因此当我调试它的原因时,它会显示ValueInstantiationException。

我希望我的自定义异常方法应该运行,而不是HttpMessageOnReadableException

共有1个答案

章禄
2023-03-14

该类应该使用@Controlller建议注解扩展响应实体ExceptionHandler。

@ControllerAdvice
public class ControllerAdvisor extends ResponseEntityExceptionHandler 

ResponseEntityExceptionHandler仅在HTTP流中由spring调用,请确保您的代码在HTTP范围内。

 类似资料:
  • 我用Spring5反应式编写了一个自定义异常 我把这个叫做服务: 但是当我到达这个页面时,会抛出一个异常,但它不是404,而是一个空指针异常和一个错误500页面,但有正确的消息? AddressNotFound永远不会抛出,只有Nullpointer异常,但会抛出我的自定义消息???你能帮帮我吗? 这是我的控制器: 谢谢

  • 在阅读了一些关于为Spring创建自定义异常处理程序的博客文章后,我编写了以下类: 其目的是在JSON响应中发送,而不是放弃由于任何原因引发的Spring异常。 然而,这门课不起作用。 例如,当我命中服务器API的无效终结点时,我将获得默认的响应有效载荷: 我错过了什么? 谢谢。

  • 我目前正在将Jersey 1. x项目迁移到2.4.1,并在使用枚举作为参数(PathParam、QueryParam等)时遇到错误。基本上,此枚举应该是有效的,基于泽西对方法参数的第三个要求 有一个名为valueOf或fromString的静态方法,它接受一个String参数(例如,请参见Integer.valueOf(String)和java.util.UUID.fromStriing(Str

  • 问题内容: 我如何写一个等于的lambda表达式: 不允许以下内容: 问题答案: 皮肤化Python的方法不止一种: Lambda接受语句。既然是一条语句,您可以编写一个通用的提升器: 但是,如果您的目标是避免使用,则显然不能削减它。但是,它确实允许您有条件地引发异常,例如: 另外,您可以在不定义命名函数的情况下引发异常。您所需要的只是强健的腹部(给定的代码是2.x): 和python3 强健胃部

  • enum 关键字允许创建一个代表数个可能变量的数据的类型(原文:The enum keyword allows the creation of a type which may be one of a few different variants.若您对此句有 更好的翻译或理解,希望指出来,谢谢。)。在 struct 中任何合法的变量在 enum 同样是合法的。 // 隐藏未使用代码警告的属性。

  • 已编辑:我对render方法有一个自定义异常,当我抛出它时(例如从控制器中)会调用该异常,但当我在View composer中抛出它时,不会调用该异常。 所以当我这样做的时候 并将dd()置于异常呈现方法 我没有得到任何结果。 如果我直接记录我的异常,会发现首先抛出的是CustomException,然后会看到ErrorException。 我找到了一个扔它的地方。 \照明\查看\引擎\Compi