java - 如何处理spring Controller 参数类型异常

标签 java spring model-view-controller

我有简单的 Spring Controller 。

@GetMapping("/test")
@ResponseBody
public String doSomething(@RequestParam int a) {

    return String.valueOf(a);
}

当我在查询字符串中传递 a=1 时,它工作正常。

但是当我通过 a=abc 时,它给了我这个。

> Failed to convert value of type 'java.lang.String' to required type
> 'int'; nested exception is java.lang.NumberFormatException: For input
> string: "abc".

有没有办法让我可以处理这个错误并向用户响应,就像必须是数字一样。

提前致谢。

最佳答案

您可以使用@ControllerAdive来处理此类异常。

@ControllerAdvice
public class RestControllerAdive extends ResponseEntityExceptionHandler 
{
    @ExceptionHandler(value=NumberFormatException.class)
    public ResponseEntity<Object> handleNumberFormatException(NumberFormatException ex)
    {
        return new ResponseEntity({your-error-message}, HttpStatus);
    }
}

关于java - 如何处理spring Controller 参数类型异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441263/

相关文章:

java - 重复的堆栈跟踪

java - 如何让子类用扩展类型重写父类抽象方法?

ajax - Spring 安全性 + Ajax session 超时问题

java - Spring中的循环依赖

spring - 我可以在一个事务中使用指向同一数据源的两个不同的实体管理器吗?

javascript - 从一个类访问另一个类中托管的特定 Controller

java - 对有效的 XML 感到愤怒的 JAXB 解析器?

java - 使用 Borderlayout 设置 3 JPanel 格式

jquery - 防止使用 Jquery 将默认值提交给 MVC3 Controller ?

javascript - 访问 Kendo UI MVC RadioButtonFor Helper 的 JavaScript 控件