springMVC如何处理异常

本文介绍了Spring MVC中处理异常的四种方法,包括使用@ExceptionHandler注解、创建@ControllerAdvice类、利用@ResponseStatus注解以及在配置文件中进行设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springMVC如何处理异常?做一小结:

微笑微笑微笑

1、第一种方法:

1)在handler中,添加一个处理异常的方法该方法必须实现@ExceptionHandler注解,此注解有一个value属性,是一个class数组,可以使一个方法同时处理多个不同类型的异常。例子:

@ExceptionHandler({ArithmeticException.class, ArrayIndexOutOfBoundsException.class})

public String isException(Exception ex) {

System.err.println("出错了: " +ex);

return "error";

}

在此handler中的方法如果出现ArithmeticException或ArrayIndexOutOfBoundsException异常则会交给此方法处理,在控制台打印异常信息,并进入error页面。练习截图:

 

(2)若希望将异常信息打印到页面上,则需要使用ModelAndView对象作为返回值:

 

error页面中的写法为: 

 

(3)@ExceptionHandler注解标注的方法有优先级:

 

 

一个是RuntimeException,一个是ArithmeticException,如果出现除数为0的情况则会执行第二个方法,因为ArithmeticException异常与除数为0精确匹配。即精确匹配的优先级高。

2、第二种方法,专门写一个异常处理的类,并且为此类添加@ControllerAdvice注解即可用来专门处理异常,handler中不需添加其他注解和方法。

详细解释:如果在当前handler中找不到@ExceptionHandler 标记的方法,则会去 @ControllerAdvice 标记的类中查找 @ExceptionHandler 标记的方法来处理异常。

练习截图:

 

3、添加 @ResponseStatus 注解,异常信息会在页面打印:

1)在类名上添加 @ResponseStatus 注解

 

假设i的值为13时抛出该异常:

 

则会在页面中打印如下异常信息:

 

(2)在方法名上添加 @ResponseStatus 注解则无论i是否等于13都会抛出异常。即添加了该注解的方法就会抛出下图异常:

 

 

4、springMVC的配置文件中处理异常,例如出现数组下标越界异常则跳转到error页面。练习截图:

 

如果要在异常页面打印异常信息,则exceptionAttributevalue值必须与页面中相同:

 

在error页面打印异常信息:

 

总结完毕。吐舌头吐舌头吐舌头


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值