作者:手机用户2602934327 | 来源:互联网 | 2023-05-17 09:54
一、SimpleMappingExceptionResolver如果希望对所有异常进行统一处理,可以使用SimpleMappingExceptionResolver,它将异常类名映
一、SimpleMappingExceptionResolver
如果希望对所有异常进行统一处理,可以使用 SimpleMappingExceptionResolver,它将异常类名映射为视图名,即发生异常时使用对应的视图报告异常
二、代码演示
a)Controller
@GetMapping("/hello")
public String hello() throws Exception {
// 抛出异常
throw new Exception("抛出异常");//Exception
}
@GetMapping("/test")
public String test() throws Exception {
// 模拟异常
int i = 5 / 0;
return "success";
}
/**
* sqlerror
*/
@GetMapping("/find")
public String find() throws Exception {
try {
// 模拟异常
int i = 5 / 0;
return "success";
} catch (Exception e) {
throw new SQLException("SQL出错查找数据失败!");
}
}
b)SpringMVC配置文件
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/content/" p:suffix=".jsp"/>
p:defaultErrorView="error"
p:exceptiOnAttribute="ex">
ioerror
sqlerror
ioerror
sqlerror
注: ioerror(WEB-INF/content/ioerror.jsp)、sqlerror( WEB-INF/content/sqlerror.jsp) 会被视图解析器解析。key 是异常类名或包名+类名
c)错误页面
WEB-INF/content/error.jsp
<%@ page language="java" cOntentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
异常处理页面(error.jsp)
抛出异常信息:${requestScope.ex.message}
WEB-INF/content/sqlerror.jsp
<%@ page language="java" cOntentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
特定异常处理页面(sqlerror.jsp)
抛出异常信息:${requestScope.ex.message}
WEB-INF/content/ioerror.jsp
<%@ page cOntentType="text/html;charset=UTF-8" language="java" %>
d)请求页面
index.jsp
<%@ page cOntentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
没有异常处理
使用简单异常处理器处理异常
使用简单异常处理器处理特定异常
f)效果
UTF-8
1.8
1.8
5.0.2.RELEASE
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
javax.servlet
servlet-api
2.5
provided
javax.servlet
jsp-api
2.0
provided