【发布时间】:2011-02-21 18:17:00
【问题描述】:
我的控制器中有一个方法可以处理应用程序抛出的异常。所以我有一个像这样的方法。
@Controller
public class ExceptionController {
@RequestMapping(value="/error")
@ExceptionHandler(value={Exception.class, NullPointerException.class})
public String showError(Exception e, Model model){
return "tiles:error";
}
}
如果它有效,我会在其他方法控制器的另一个方法中抛出 NullPointerException:
boolean a = true;
if(a){
throw new NullPointerException();
}
抛出异常后,它会打印在 JSP 中,但它不会抛出我的 showError() 方法(我在那里设置了一个断点,它永远不会进入)。 showError() 方法将捕获异常并根据异常类型显示不同的错误页面(尽管现在它总是显示相同的错误页面)。如果我转到 url /error 它会显示错误页面,所以 showError() 方法就可以了。
我正在使用 Spring 3。
可能是什么问题?
谢谢。
【问题讨论】:
-
如果您想将异常处理与控制器分离,请改用
HandlerExceptionResolver:static.springsource.org/spring/docs/3.0.x/…
标签: java spring jsp exception-handling spring-mvc