Spring Bootでどのようにグローバル例外をキャッチするかを教えてください。

Spring Bootでは、ErrorControllerインターフェースを実装するか、@ControllerAdviceアノテーションを使用してグローバル例外をキャッチすることができます。

方法1:ErrorControllerインタフェースを実装する。

  1. エラーコントローラー
  2. エラーのパスを取得する
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CustomErrorController implements ErrorController {

    @Override
    public String getErrorPath() {
        return "/error"; // 定义错误页面的路径
    }

    @RequestMapping("/error")
    public String handleError() {
        // 处理异常的逻辑
        return "error"; // 返回错误页面
    }
}
  1. アプリケーションのプロパティ
  2. アプリケーションの設定ファイル、application.yml

方法2:@ControllerAdviceアノテーションを使用します。

  1. コントローラーアドバイス
  2. @例外処理
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ModelAndView handleException(Exception e) {
        // 处理异常的逻辑
        ModelAndView mav = new ModelAndView();
        mav.addObject("errorMsg", e.getMessage());
        mav.setViewName("error"); // 返回错误页面
        return mav;
    }
}
  1. アプリケーションのプロパティ
  2. アプリケーションの設定ファイルであるapplication.yml

上記の2つの方法では、グローバルな例外をキャッチし、カスタムのエラーページやエラーメッセージを返すことができます。

bannerAds