1.自定义异常
就是咱们本身从新定义一个异常类,继承runtimeException
public class UserNameAlreadyExistsException extends RuntimeException{
private static final long serialVersionUID = 1L;
public UserNameAlreadyExistsException(String message) {
super(message);
}
2.判断是否会出现异常
//2.检查用户名是否被占用
int count = userMapper.getUserCount (userName);
//3.若是被占用则抛出自定义异常
if (count>0) {
throw new UserNameAlreadyExistsException(GlobaleMessage.USERNAME_ALREADYEXISTS);
}
3.在GlobaleMessage类中定义常量
public class GlobaleMessage {
public static final String USERNAME_ALREADYEXISTS = "用户名已存在,请从新注册!";
}
4.在MVC文件中配置
<!-- 配置ExceptionMapping统一管理项目中的异常 -->
<bean id="simpleMappingExceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- key属性:异常全类名,“开始和结束标签之间部分”:捕获到异常后要前往的逻辑视图名称 -->
<prop key="com.atguigu.survey.e.UserNameAlreadyExistsException">guest/user_registUI</prop>
</props>
</property>
</bean>
5.在页面上取出异常消息
SpringMVC捕获到异常后,会将异常对象保存到请求域中,属性名是exception
在页面上使用下面的EL表达式就能够取出异常信息
<c:if test="${requestScope.exception != null }">
<div class="text-center">${requestScope.exception.message }</div>
</c:if>
6.意义
这个机制创建起来后,能够在各个不一样模块中都是用相同的办法显示错误消息