[Java] 예외처리

sese·2022년 12월 14일

새싹

목록 보기
31/39

ArithmeticException

  • 0으로 나누는경우 발생하는 에러
public class Main {

	public static void main(String[] args) {
		
		int num1 = 5;
		int num2 = 0;
		
		System.out.println(num1/num2);
		
	}

}

예외 처리

public class Main {

	public static void main(String[] args) {
		
		int num1 = 5;
		int num2 = 0;
		
		try {
			System.out.println(num1/num2);
		}
		catch(ArithmeticException e) {
			System.out.println("Divided by 0");
		}
        // 무조건 실행되는 부분
		finally {
			System.out.println("finally");
		}
		
	}

}


InputMismatchException

  • 입력 타입이 다른 경우
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("숫자를 입력해주세요");
		
		int num = scanner.nextInt();
		
		System.out.println("숫자 " + num);
		
		scanner.close();
		
	}

}

예외 처리

import java.util.InputMismatchException;
import java.util.Scanner;

public class TryCatch {
	
	public void inputException() {
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("숫자를 입력해주세요");
		try {
			int num = scanner.nextInt();
			System.out.println("숫자 " + num);
		}
		catch(InputMismatchException e) {
			System.out.println("Not a Number");
		}
		scanner.close();
		
	}
}


ArrayIndexOutOfBoundsException

  • 배열의 잘못된 인덱스에 접근할 때 생기는 에러
public class Main {

	public static void main(String[] args) {
		
		int[] intArray = {1, 2, 3, 4};
		
		for(int i=0; i<5; i++) {
        	System.out.println(intArray[i]);
		}
	}

}

예외 처리

public class Main {

	public static void main(String[] args) {
		
		int[] intArray = {1, 2, 3, 4};
		
		for(int i=0; i<5; i++) {
			try {
				System.out.println(intArray[i]);
			}
			catch(ArrayIndexOutOfBoundsException e) {
				System.out.println("인덱스가 범위를 벗어났습니다.");
			}
		}
	}

}


예외 클래스 만들기

public class MinusException extends Exception {
	
	public MinusException() {
		super("음수가 입력됨");
	}
	
}
public class Main {

	public static void main(String[] args) {
		
		try {
			int num = -2;
  			// 예외가 발생하면 에러를 던지고(throw)
			if (num < 0) {
				throw new MinusException();
			}
		}
        // 에러를 잡아서(catch) 실행한다
		catch (MinusException e) {
			e.printStackTrace();
		}
	}

}
profile
예전 글은 다크모드로 봐야 잘 보일 수도 있습니다.

0개의 댓글