[포스코x코딩온] 웹개발자 풀스택 부트캠프8기

[포스코x코딩온] Java - 예외처리

항상 발전하는 개발자 2023. 10. 24. 01:21
728x90

예외 처리

  • 컴파일 오류와는 다르다.
    • 컴파일 오류는 문법에 맞지 않게 작성된 코드가 있을 때 발생한다.
    • 컴파일 할 때 발견되기 때문에 코드가 실행조차 되지 않는다.
  • 예외란, 프로그램 실행 중에 의도치 않는 결과가 나오는 것을 의미한다.
  • 예외를 처리하고 방지하는 것을 예외 처리라고 한다.

예외가 발생하는 경우

  • 숫자를 0으로 나누는 경우(ArithmeticException)
  • 배열의 인덱스 범위는 벗어나는 경우(ArraylndexOutOfBoundsException)
  • 정수를 입력받도록 작성한 코드에 문자열을 입력한 경우(InputMismatchException)
    • import 필요
    • import java.util.InputMismatchException;
  • 여러가지 더 있다.

Try-Catch-Finally

try{
//예외가 발생할 가능성이 있는 실행문(try 블록)
}
catch(처리할 예외 타입 선언){
//예외 처리문(catch 블록)
}
finally{
//예외 발생 여부와 상관없이 무조건 실행되는 문장(finally 블록)
//(finally 블록은 생략 가능)
}
  • 사용 예시
package exception;

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

public class ExceptionTest {

	public static void main(String[] args) {
		//예외처리
		int num1 = 4;
		int num2 = 0;
//		System.out.println(num1+"/"+num2+"="+(num1/num2));
//		
//		System.out.println("여기가 읽힐지");
		try {
			System.out.println(num1+"/"+num2+"="+(num1/num2));
		}catch(ArithmeticException e) {
			System.out.println("0으로 나누는 예외가 발생하였습니다.");
		}
		System.out.println("여기가 읽힐지");
		
		//인덱스 범위를 벗어났을 때
		int[] intArr = {1,2,3,4};
		try {
			for(int i = 0; i <intArr.length + 1; i++) {
				System.out.println(intArr[i]);
			}
		}catch(ArrayIndexOutOfBoundsException e) {
			System.out.println("인덱스가 범위를 벗어났습니다.");
		}
		
		//입력오류 시 발생하는 예외
		Scanner sc = new Scanner(System.in);
		System.out.println("정수를 입력하세요: ");
		
		try {
			int n = sc.nextInt();
			
		}catch(InputMismatchException e) {
			System.out.println("입력값이 잘못됨. 정수를 입력해주세요.");
		}
		sc.close();
	}

}
package exception;

public class Practice_exception {

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

	}

}
728x90