Programming Languages/Java

[3장] Java 예외 처리

마크투비 2021. 3. 30. 19:59

3.6 자바의 예외 처리

예외

  • 실행 중 오동작이나 결과에 악영향을 미치는 예상치 못한 상황 발생
  • 자바에서는 실행 중 발생하는 에러를 예외로 처리
  • 응용프로그램이 예외를 처리하지 않으면 프로그램 강제 종료시킴

예외 발생 경우

  • 정수를 0으로 나누는 경우
  • 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우
  • 정수를 읽는 코드가 실행되고 있을 때 사용자가 문자를 입력한 경우

예외 처리, tray-catch

 

자바의 예외 클래스

예제 3-13

import java.util.Scanner;

public class practicemimi {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int dividend; //나뉨수
		int divisor; //나눗수
		
		System.out.print("나뉨수를 입력하시오: ");
		dividend = scanner.nextInt();
		System.out.print("나눗수를 입력하시오: ");
		divisor = scanner.nextInt();
		try {
			System.out.println(dividend + "를 " + divisor + "로 나누면 몫은 " + dividend/divisor + "입니다.");	
		}
		catch(ArithmeticException e) {
			System.out.println("0으로 나눌 수 없습니다.");
		}
		finally {
			scanner.close();
		}
	}

}

 

예제 3-14

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

public class practicemimi {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("정수 3개를 입력하세요");
		int n=0, sum=0;
		
		for(int i=0; i<3; i++) {
			System.out.print(i + ">>");
			try {
				n = scanner.nextInt();
			}
			catch(InputMismatchException e) {
				System.out.println("정수가 아닙니다. 다시 입력하세요!");
				scanner.next();
				i--;
				continue;
			}
			sum += n;
		}
		System.out.print("합은 " + sum);
		scanner.close();
	}

}