例外処理



✔異常処理


に道を教える


try−catch文は、
  • メソッドの異常を予測し、処理する.
  • 要求の異常処理
  • スプリングシリーズから異常処理を切り取る

    @ExceptionHandler


    @Controller,@RestControllerを適用したbeanにおける異常をキャプチャすることによって処理する方法
    @RestController
    public class MyRestController {
    	...
    	...
        @ExceptionHandler(NullPointerException.class)
        public Object nullex(Exception e) {
        	System.err.println(e.getClass());
            return "myService";
    	}
    }
    
    @ControllerAdvice("")
    public class ExceptionController {
    	
         private static final Logger LOG = LoggerFactory.getLogger(ExceptionController.class);
    
      private ModelAndView mav;
    
      @ExceptionHandler(Exception.class)
      public ModelAndView handleException(HttpServletRequest request, Exception exception) throws Exception {
        LOG.error("error : {}", exception);
    
        String path = getResponsePath(request);
    
        mav = new ModelAndView(path);
        mav.addObject("Error", "서버에 오류가 발생하였습니다.");
    
        return mav;
    }

    try-catch

    
    try {
    // 예외가 생길 가능성이 있는 코드 작성
    } catch (Exception e) {
    // 예외처리 코드
    e.printStackTrace();
    }
    
    ----
    
    public class Mathematics {
    	public static void main(String[] args) {
    		int num1, num2;
    		num1 = 12;
    		num2 = 0;
    		try {
    			System.out.println(num1 / num2);
    		} catch (ArithmeticException e) {
    			System.out.println("0으로는 값을 나눌 수가 없습니다.");
    		}
    	}
    }
    
           
    しゅつりょくぶん
  • e.getMessage():エラーイベント付きメッセージ出力
  • e.toString():エラーイベントのtoString()を呼び出すことで、簡単なエラーメッセージ
  • を確認する.
  • e.printStackTrace():エラーメッセージのソースを検索し、エラー
  • を逐次出力します.

    throws

  • ユーザは、throw Exceptionsにより、異常を発生させたい箇所の異常を処理することができる
  • .
    	public void test2() throws Exception {
    		
    
    		int num1, num2;
    		num1 = 12;
    		num2 = 0;
    		try {
    			System.out.println(num1 / num2);
    		} catch (ArithmeticException e) {
    			System.out.println("0으로는 값을 나눌 수가 없습니다.");
    //			e.printStackTrace();
    //			return;
    		}
    		
    	}