基于Spring MVC的Web应用开发(9) - Exceptions

本文介绍SpringMVC中的异常处理,@Controller注解的方法可能由于各种各样的原因抛出异常,如果没有写try...catch()...语句,异常的堆栈信息将直接抛给浏览器,这样对用户来说很不友好,并且异常的堆栈信息可能含有一些敏感信息(如数据库的表字段,sql语句等等...)是不能暴露出去的。因此在程序中最好捕捉到所有的异常并处理后将友好的界面或者信息返回给客户端,SpringMVC提供了一个Handler,该handler指定一种异常,并返回一个view,举个例子,增加一个Controller,叫ExceptionController:

 

Java代码   收藏代码
  1. package org.springframework.samples.mvc.exceptions;  
  2.   
  3. import org.springframework.stereotype.Controller;  
  4. import org.springframework.web.bind.annotation.ExceptionHandler;  
  5. import org.springframework.web.bind.annotation.RequestMapping;  
  6. import org.springframework.web.bind.annotation.ResponseBody;  
  7.   
  8. @Controller  
  9. public class ExceptionController {  
  10.   
  11.     @ExceptionHandler  
  12.     public @ResponseBody String handle(IllegalStateException e) {  
  13.         return "IllegalStateException handled!";  
  14.     }  
  15.       
  16.     @RequestMapping("/exception")  
  17.     public @ResponseBody String exception() {  
  18.         throw new IllegalStateException("Sorry!");  
  19.     }  
  20.   
  21. }  

 

@ExceptionHandler注解的方法接收一个异常类型的参数,返回值类型和@RequestMapping一样(String,void,ModelAndView...),

访问http://localhost:8080/web/exception,浏览器显示"IllegalStateException handled!"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值