1. 메서드 내부에서 예외가 발생하였을때 바로 처리하지않고, 해당 메서드를 호출한 쪽에서 예외를 처리한다.
2. 메서드 뒤에 throws 키워드를 사용하여 던지기를 할 예외 객체를 붙여주면 된다.
3. 예외 객체는 여러 개를 던질수있으며, 여러개를 던질시 콤마로 구분해서 나열한다.
바로 예제를 보자
public class ThowsExceptionExample { //성격 유형검사를 위한 메서드 public static void checkYourSelf(Scanner scan) throws InputMismatchException{ System.out.println("1. 사람과 어울리는것이 좋다. 2. 혼자있는것이 좋다"); System.out.println("선택 : "); int check = scan.nextInt(); if(check ==1) { System.out.println("당신은 ENFP"); }else { System.out.println("당신은 INJFP"); } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); try { System.out.println("======성격유형 검사를 시작합니다.======"); //메서드 호출 checkYourSelf(scan); } catch (InputMismatchException e) { System.out.println("키보드입력이 잘못되었습니다."); } } } |
1. checkYourSelf 메서드는 Scanner scan 을 매개변수로 받는다. 그리고 입력값에 대한 오류처리를 InputMismatchException에게 넘긴다.(호출한쪽에서 오류를 잡는다.)
2.정수를 입력하면 아무런 오류가 발생하지않지만 실수 또는 문자등을 사용하면 오류가 발생한다.
3. catch (InputMismatchException e) {
System.out.println("키보드입력이 잘못되었습니다.");
}
를 사용해서 범위 밖의 모든 값들은 "키보드입력이 잘못되었습니다." 로 출력하게 만든다.
이것을 구분지어주는것이 바로 InputMismatchException e 이다.
'(혼) (공) (자)' 카테고리의 다른 글
사용자 정의 예외처리 (0) | 2024.01.24 |
---|---|
강제예외처리 (0) | 2024.01.23 |
finally (1) | 2024.01.23 |
try-catch (0) | 2024.01.22 |
예외종류 (0) | 2024.01.22 |