본문 바로가기
자바(Java)

자바 입문하기17 - Exception

by codeyaki 2022. 1. 12.
반응형

해당 강의를 보고 정리한 것입니다.

https://programmers.co.kr/learn/courses/5

 

자바 입문

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

programmers.co.kr


Exception(예외처리)

: 프로그램 실행 중 예기치 못한 가건을 예외라고 함. 예외 상황을 미리 예측하고 처리하는 것을 예외 처리라고 함.

  • 문법
try{
	
    수행할코드(오류가 발생할 가능성이 있는 블록)
    
}catch(예외클래스 변수명) {

	예외 처리 블록 (오류 발생시 실행할 블록)
    
}finally{

	예외 발생 여부에 상관없이 반드시 실행되는 블록 (생략가능)
    
}
  • 예시
public class ExceptionExam {
	public static void main(String[] args) {
		int i = 10;
		int j = 0;
		int k = i/j;
		System.out.println(k);
		System.out.println("main 종료!!");
	}
}
  • 해당 코드에서 j를 0으로 바꾼다면 Exception 발생
    - j를 0으로 바꾼다면 ArithemticException이 발생하면서 프로그램이 종료
    - 정수를 나눌 때 0으로 나누기 때문에 발생하는 오류
    - 만약 0으로 나눠지는 경우를 미리 예측하고 처리하고 싶다면? -> 예외처리 사용

 

  • 예외 처리
public class ExceptionExam {
	public static void main(String[] args) {
		int i = 10;
		int j = 0;
		try {
		int k = i/j;
		System.out.println(k);
		}catch(ArithmeticException e){
			System.out.println("0으로 나눌수 없습니다. " + e.toString());
		}finally {
			System.out.println("main 종료!!");
		}
	}
}

>>

0으로 나눌 수 없습니다. java.lang.ArithmeticException: / by zero
main 종료!!


  • Exception 처리하지 않았을 때는 프로그램이 강제 종료되었으나 catch라는 블록으로 Exception을 처리하니 강제 종료되지 않고 잘 실행됨
  • try블록에서 여러종류의 Exception이 발생한다면 catch블록을 여러 개 둘 수 있다.
  • Exception클래스들은 모두 Exceotion클래스를 상속 받는다. 예외 클래스에 Exception을 두게 되면 어떤 오류가 발생하든지 하나의 catch블록으로 모든 오류를 처리할 수 있다.

 

반응형