3.17 Spring MVC的异常处理

3.17 Spring MVC的异常处理

使用try catch处理异常

任何成熟的MVC框架都应该提供异常处理机制,当然可以在Controller的请求处理方法中手动使用try...catch块捕捉异常,当捕捉到特定异常时,返回特定逻辑视图名,但这种处理方式非常烦琐,需要在请求处理方法中书写大量的catch块。最大的缺点还在于异常处理与代码耦合,一旦需要改变异常处理方式,必须修改大量代码!这是一种相当糟糕的方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class XxxController
{
@RequestMapping("/hello")
public String hello()
{
try{
...
} catch(异常1 e)
{
return 结果1;
} catch(异常2 e)
{
return 结果2;
}
}
}

Spring MVC提供的异常处理方式

Spring MVC中提供的异常处理方式有两种:
(1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver
(2)使用@ExceptionHandler注解实现局部异常处理或使用@Controlleradvice注解实现统一异常处理。