예외 처리는 예외 발생시 응답하는 프로세스다.
try문은 오류에 대한 코드 블록을 테스트할 수 있고
catch문은 예외가 발생할 경우 수행할 코드가 작성된다.
finally문은 예외가 발생하든 발생하지 않든 반드시 실행해야 하는 부분에 대해
코드를 작성하게 된다.
두개의 정수 x, y가 주어진다. x/y를 계산해야 하는데 만약 x,y가 32비트의 정수가 아니거나, y가 0이라면 예외를 발생해 report해야 한다.
예외 처리의 기본 틀
try {
// block of code that can throw exceptions
} catch (Exception ex) {
// Exception handler
} finally {
System.out.println("여기는 반드시 실행되는 부분")
}
import javax.swing.*;
import java.io.*;
import java.util.*;
public class ExceptionHandlingTryCatch {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner sc = new Scanner(System.in);
try{
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a/b);
}
catch (InputMismatchException e){ // 정수로 입력해야 하는데 문자를 입력한 경우 예외 발생
System.out.println(e.getClass().getName());
} // 무슨 예외가 발생할지 모를 때에는 모든 예외의 부모 클래스인 Exception class를 이용해 catch에서 인자를 받아도 된다.
//인텔리제이에서는 아래 Exception만 해도 아웃풋이 잘 됐는데, 해커랭크에서는 통과 불가.
// inputMistmatch가 발생할 것을 미리 사전에 알고 있으므로 명시해주는 차원인가..
catch (Exception e) {
System.out.println(e);
}
}
}