SSMプロジェクトは例外処理機能を追加します

SSMプロジェクトは例外処理機能を追加します

目次

1.リクエストによって返されたステータスコードによる例外処理

1.1。最初にweb.xmlで構成する必要があります

1.2。指定された場所にjspファイルを追加します

1.3。検証

2.全体的な例外キャプチャメカニズム

2.1.SpringMVCのHandlerExceptionResolverを実装します

2.2。検証


1.リクエストによって返されたステータスコードによる例外処理

特定のステータスコードを参照してください。

https://blog.csdn.net/fmyzc/article/details/78048074

(注:私の同意なしに直接引用して申し訳ありません。)

ここでは、プロジェクトの実際の状況に応じて追加できる404例外情報のみを扱いました。

1.1。最初にweb.xmlで構成する必要があります

<!--异常页面,当没有发现的时候,会根基这个404代码返回相对应的jsp页面 -->
<error-page>
  <error-code>404</error-code>
  <location>/WEB-INF/jsp/error/404.jsp</location>
</error-page>

 

 

 注:すべてのブラウザーから返されるステータスコード情報はここで構成でき、さまざまなステータスコード情報をさまざまなjspファイルにジャンプできます。

1.2。指定された場所にjspファイルを追加します

 

1.3。検証

 サービスを開始し、プログラムで構成されていないURLを入力して、対応するページに戻ります。

 

2.全体的な例外キャプチャメカニズム

2.1.SpringMVCのHandlerExceptionResolverを実装します

全体的な例外キャプチャメカニズムを導入する前に、SpringMVCのHandlerExceptionResolverインターフェイスを実装する必要があります。

package edu.wan.handler;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
public class MyHandlerExceptionResolver  implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        String errorMessage = null;
        //首先可以对异常进行判断
        if (e instanceof NullPointerException){
            errorMessage = "咋回事,大兄弟,你咋还空指针了呢";
        }
        //返回错误页面
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("errorMessage",errorMessage);
        modelAndView.setViewName("error");
        return modelAndView;
    }
}

 

2.2。検証

検証のためにコントローラーレイヤーのコードを変更しました。

public @ResponseBody User findUserById(){
    int id = 1;
    userService = null;
    return userService.findById(id);
}

サービスを開始し、指定されたコントローラーを呼び出すと、例外処理レイヤーにジャンプします。さまざまな例外情報に従って、さまざまなデータパッケージをフロントエンドにアセンブルし、フロントエンドにデータを処理させます。

 

 

おすすめ

転載: blog.csdn.net/baidu_31572291/article/details/114978531