2018-3-9 TIL Exception

예외처리

  • 프로그램에서 ‘예외’는 실행 중에 발생하는 정성적이지 않은 상황을 말한다.
package yoon;

import java.util.Scanner;

public class ExceptionCase {
    public static void main(String [] args) {
        Scanner kb = new Scanner(System.in);
        System.out.print("a/b...a?");
        int n1 = kb.nextInt();
        System.out.print("a/b...b?");
        int n2 = kb.nextInt();
        System.out.printf("%d / %d = %d \n", n1, n2, n1 / n2);
    }
}
//result
a/b...a?8
a/b...b?0
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at yoon.ExceptionCase.main(ExceptionCase.java:12)

  • java.util.InputMismatchException
  • java.lang.ArithmeticException
  • 위의 경우는 예외상황을 알리기 위한 예외클래스이다.

try ~ catch

try {
	...관찰 영역...
}
catch(Exception name) {
	...처리 영역...
}
  • try영역에서 발생한 예외 상황을 catch영역에서 처리한다
package yoon;

import java.util.Scanner;

public class ExceptionCase {
    public static void main(String [] args) {
        Scanner kb = new Scanner(System.in);

        try {
            System.out.print("a/b...a?");
            int n1 = kb.nextInt();
            System.out.print("a/b...b?");
            int n2 = kb.nextInt();
            System.out.printf("%d / %d = %d \n", n1, n2, n1 / n2);
            // 예외가 발생하는 지점
        }
        catch (ArithmeticException e) {
            System.out.println(e.getLocalizedMessage());
        }
    }
}
//result
a/b...a?2
a/b...b?0
/ by zero
  • try ~ catch문을 이용하면 위와같이 예외상황을 처리할 수 있다.
Written on March 9, 2018