springMVC3学习(八)--全局的异常处理

2014-11-23 19:51:31 · 作者: · 浏览: 12

在springMVC的配置文件中:


  
    
    
    
     /error
    
     
   
    
   
     
    
      
      
       
      
       500
       
      
       503
       
      
     
     
      
      
       number
      
       
      
       null
       
      
     
   
   

这里主要的类是SimpleMappingExceptionResolver类,和他的父类AbstractHandlerExceptionResolver类。

你也可以实现HandlerExceptionResolver接口,写一个自己的异常处理程序.

通过SimpleMappingExceptionResolver我们可以将不同的异常映射到不同的jsp页面(通过exceptionMappings属性的配置)。

同时我们也可以为所有的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置),

如果所抛出的异常在exceptionMappings中没有对应的映射,则Spring将用此默认配置显示异常信息。

Login.java测试类

import java.io.File;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Login {
	@RequestMapping(/null)
	public void testNullPointerException() {
	     File file = null;
	     // 空指针异常,返回定义在SpringMVC配置文件中的null视图
	     System.out.println(file.getName());
	}

	@RequestMapping(/number)
	public void testNumberFormatException() {
	     // NumberFormatException,返回定义在SpringMVC配置文件中的number视图
	     Integer.parseInt(abc);
	}

	@RequestMapping(/default)
	public void testDefaultException() {
		if (1 == 1)
		  // 由于该异常类型在SpringMVC的配置文件中没有指定,所以就会返回默认的exception视图
		  throw new RuntimeException(Error!);
	}
}

显示错误的jsp页面(已error.jsp为例)

 <% Exception e = (Exception)request.getAttribute(exception); out.print(e.getMessage()); %>
 
测试URL: http://localhost:8080/spring_exception/null