所以我有以下控制器:
@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属性时会抛出这个文件。
您能否澄清抛出哪种类型的异常以及何时发生?
答案 0 :(得分:0)
因为,你在谈论,如果你提供'uid'作为String&你期待ConversionFailedException。 但是,ConversionFailedException通常发生在CAN是适配转换器且java无法找到转换器时。
如果你仍然没有得到它,那么一旦有人问你可以理解ConversionFailedException,这里就是 question 。
然而,在测试之后,你可以检查是否存在带有根本原因的MethodArgumentTypeMismatchException NumberFormatException ,这清楚地表明java响应了你的转换但是无法将 String 转换为整数