───────┬──────────────────────────────────────────────────────────────────────── │ File: src/main//java/jp/ac/kobe_u/cs/itspecialist/todoapp/controller/ToDoErrorHandler.java ───────┼──────────────────────────────────────────────────────────────────────── 1 │ package jp.ac.kobe_u.cs.itspecialist.todoapp.controller; 2 │ 3 │ import org.springframework.ui.Model; 4 │ import org.springframework.web.bind.annotation.ControllerAdvice; 5 │ import org.springframework.web.bind.annotation.ExceptionHandler; 6 │ 7 │ import jp.ac.kobe_u.cs.itspecialist.todoapp.exception.ToDoAppException; 8 │ import lombok.extern.slf4j.Slf4j; 9 │ 10 │ /** 11 │ * ToDoアプリの例外ハンドラクラス 12 │ */ 13 │ @Slf4j 14 │ @ControllerAdvice 15 │ public class ToDoErrorHandler { 16 │ /** 17 │ * アプリケーション例外をハンドルし,エラーページを表示する 18 │ */ 19 │ @ExceptionHandler(ToDoAppException.class) 20 │ public String handleToDoException(ToDoAppException ex, Model model) { 21 │ model.addAttribute("advice", "アプリケーション例外が発生しました.メッセージを確認してください"); 22 │ model.addAttribute("exception", ex); 23 │ log.error(ex.getMessage()); 24 │ return "error"; 25 │ } 26 │ 27 │ /** 28 │ * その他の例外をハンドルし,エラーページを表示する 29 │ */ 30 │ @ExceptionHandler(Exception.class) 31 │ public String handleException(Exception ex, Model model) { 32 │ model.addAttribute("advice", "深刻なエラーが発生しました.管理者にお問い合わせください"); 33 │ model.addAttribute("exception", ex); 34 │ log.error(ex.getMessage(), ex.getCause()); 35 │ return "error"; 36 │ } 37 │ } ───────┴────────────────────────────────────────────────────────────────────────