예외(Exception)
프로그램 실행 중 예상하지 못한 상황이 발생하는 것 ( 0으로 나누기 등)
- 의도하지 않은 예외 : 0으로 나누기 등 -> 예외처리 하지 않으면 이후 코드가 실행되지 않음
- 의도적인 예외 : 아래 코드와 같이 특정 조건에서 의도적으로 예외를 발생 시킴.(throw 키워드를 통해)
public class Main {
public static void main(String[] args) {
int age = 10;
if (age < 18) {
// 의도적으로 예외를 발생시키는 부분
throw new IllegalArgumentException("미성년자는 접근할 수 없습니다!");
}
System.out.println("....");
}
}
RuntimeException - CheckedException
컴파일러가 예외처리를 강제하지 않는 예외
Exception - CheckedException
컴파일러가 예외처리를 강제하는 예외
- 예외처리를 컴파일러가 확인하지 않음
- RuntimeExceprion과 이를 상속받는 예외는 제외됨
예외 처리(try-catch)
예외 발생 시 프로그램 종료를 방지하고 처리하는 방법
public class Main {
public static void main(String[] args) {
ExceptionPractice exceptionPractice = new ExceptionPractice();
// ✅ 상위로 전파된 예외처리
try {
exceptionPractice.callUncheckedException();
} catch (RuntimeException e) { // ✅ 예외처리
System.out.println("언체크 예외 처리");
} catch (Exception e) {
System.out.println("체크 예외 처리");
}
System.out.println("프로그램 종료");
}
}
throws
throw 키워드를 통해 이 메서드를 호출한 곳에서 예외 처리를 하도록 강제할 수 있음.
public class ExceptionPractice {
public void callCheckedException() throws Exception { // ✅ throws 예외를 상위로 전파
if (true) {
System.out.println("체크예외 발생");
throw new Exception();
}
}
}
package chapter3.exception;
public class Main {
public static void main(String[] args) {
// 예외 실습 객체 인스턴스화
ExceptionPractice exceptionPractice = new ExceptionPractice();
// 체크 예외 사용
// ✅ 반드시 상위 메서드에서 try-catch 를 활용해 주어야합니다.
try {
exceptionPractice.callCheckedException();
} catch (Exception e) {
System.out.println("예외처리");
}
}
}'Java > 기본 문법' 카테고리의 다른 글
| 람다(Lambda) (0) | 2026.05.21 |
|---|---|
| 제네릭(Generic) (0) | 2026.05.20 |
| Collection (0) | 2026.05.20 |
| Optional (0) | 2026.05.20 |
| record (0) | 2026.05.15 |