異常的統一管理

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.意義

這個機制創建起來後,能夠在各個不一樣模塊中都是用相同的辦法顯示錯誤消息
相關文章
相關標籤/搜索