객체지향 프로그래밍
[자바 JAVA] 컬렉션 - 예외처리 Exception
codificacion
2023. 3. 7. 00:06
** 개인 학습용으로 작성한 내용이니 정확하지 않을 수 있음 **
예외처리
예외처리란, 예기치 않은 에러 발생에 대응할 수 있는 코드를 미리 작성하여 프로그램의 비정상적 종료를 방지하기 위함.
예를 들어, 수많은 코드를 작성했는데 그중 한 코드가 잘못 됐다 해서 종료가 되면 얼마나 화가 날까?
또는 코드 테스트를 하고 여러 단계를 완료하고 마지막 단계만 확인하면 되는데 네트워크 문제로 비정상 종료가 되면... 생각도 하기 싫음..
에러는 내부 (코드 작성의 문제) 또는 외부(네트워크 또는 하드 문제, 존재하지 않은 파일 불러오기) 에러로 나뉘고 그 안에서도 컴파일 에러(Compile Time Error)와 런타임 에러(Run Time Error) 로도 나뉨.
컴파일 에러
말 그래로 컴파일 할 때 발생하는 ")", "}" ";" 등 Syntax 에러임.
런타임 에러
작성 된 코드를 실행할 때 만나는 에러임.
public class RuntimeErrorTest {
public static void main(String[] args) {
System.out.println(4 * 4);
System.out.println(4 / 0); // 예외 발생
}
}
//출력값
16
Exception in thread "main" java.lang.ArithmeticException: / by zero
at RuntimeErrorTest.main(RuntimeErrorTest.java:5)
에러와 예외 차이
에러는 한번 발생 되면 복구하기 어려운 수준의 심각한 오류이며 메모리 부족과 스택오버플로우 등이 있음.
예외는 잘못된 사용 또는 코딩을 코드 수정 등을 통해 수습이 가능한 오류임.
예외 처리는 어떻게 처리 가능한가?
try-catch 문 사용으로 가능함.
try {
// 예외가 발생할 가능성이 있는 코드를 삽입
}
catch (ExceptionType1 e1) {
// ExceptionType1 유형의 예외 발생 시 실행할 코드
}
catch (ExceptionType2 e2) {
// ExceptionType2 유형의 예외 발생 시 실행할 코드
}
finally {
// finally 블럭은 옵셔널
// 예외 발생 여부와 상관없이 항상 실행
}