Spring @RequestParam类型不匹配异常?

时间:2016-03-29 22:05:47

标签: java spring spring-mvc

所以我有以下控制器:

@RequestMapping(value = "/test.html", method = RequestMethod.POST)
public String test(Model model, @RequestParam(value = "uid", required = true) Long uid) {
    // logic to play with uid
}

uid类型不正确时,Spring会抛出什么类型的异常,例如String
从文档来看,它似乎是ConversionFailedException,但是没有在相应类的异常处理程序中捕获。

@ExceptionHandler(value = {ConversionFailedException.class,})
@ResponseStatus(value = HttpStatus.NOT_ACCEPTABLE)
public ModelAndView wrongParameterType(ConversionFailedExceptione,HttpServletRequest request){
    //log and things
}

我也试过TypeMismatchException被抓住了,但我很困惑,因为在尝试设置bean属性时会抛出这个文件。

您能否澄清抛出哪种类型的异常以及何时发生?

1 个答案:

答案 0 :(得分:0)

因为,你在谈论,如果你提供'uid'作为String&你期待ConversionFailedException。 但是,ConversionFailedException通常发生在CAN是适配转换器且java无法找到转换器时。

如果你仍然没有得到它,那么一旦有人问你可以理解ConversionFailedException,这里就是 question

然而,在测试之后,你可以检查是否存在带有根本原因的MethodArgumentTypeMismatchException NumberFormatException ,这清楚地表明java响应了你的转换但是无法将 String 转换为整数