반응형
예외 처리는 프로그램이 예기치 않은 상황에서 발생한 오류를 대비하여 처리하는 메커니즘으로,
예외 상황을 고려하여 코드를 작성한다.
try-catch-finally 블록을 사용한 예외 처리
class ExceptionExample {
void divide(int a, int b) {
try {
// try 블록 안에서 예외가 발생할 수 있는 코드 작성
int result = a / b; // 0으로 나눌 때 예외 발생 가능성
System.out.println("Result: " + result); // 예외 발생하지 않으면 결과 출력
} catch (ArithmeticException e) {
// catch 블록에서 예외 처리
System.out.println("Error: " + e.getMessage()); // 예외 메시지 출력
} finally {
// finally 블록은 예외 발생 여부와 상관없이 항상 실행
System.out.println("Finally block executed"); // 항상 실행되는 문장
}
}
}
public class Main {
public static void main(String[] args) {
ExceptionExample example = new ExceptionExample();
// divide 메서드 호출
example.divide(10, 0); // 0으로 나누기 시도
// Output:
// Error: / by zero
// Finally block executed
}
}
- try 블록 안에서 예외가 발생할 수 있는 코드를 작성하고, catch 블록에서 예외를 처리한다. catch 블록은 해당 예외가 발생하면 실행됩니다.
- finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 블록으로, 리소스 해제 등에 사용된다.
사용자 정의 예외 클래스
// 사용자 정의 예외 클래스
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
class ExceptionExample {
void checkAge(int age) throws CustomException {
if (age < 0) {
throw new CustomException("Age cannot be negative");
}
System.out.println("Age is valid: " + age);
}
}
public class Main {
public static void main(String[] args) {
ExceptionExample example = new ExceptionExample();
try {
example.checkAge(-10);
} catch (CustomException e) {
System.out.println("Error: " + e.getMessage()); // Output: Error: Age cannot be negative
}
}
}
- 사용자 정의 예외 클래스는 기본 예외 클래스(Exception)를 상속하여 사용자가 직접 정의한 예외를 나타내는 클래스이다.
- 예외 처리 시에는 throw 키워드를 사용하여 해당 예외를 직접 발생시킬 수 있습니다. 호출한 쪽에서는 catch 블록을 통해 이를 처리합니다.
다음 5탄에서는 배열과 JAVA 컬렉션 사용, 인터페이스와 추상 클래스에 대해 적어보도록 하겠습니다 :)
2023.08.06 - [코딩/JAVA] - Spring 공부하기 전 알아야하는 JAVA 기초 개념 (5탄) - 배열과 컬렉션 & 인터페이스와 추상 클래스
반응형
'코딩 > JAVA' 카테고리의 다른 글
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (6탄) - 스레드(Thread) (4) | 2023.08.06 |
---|---|
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (5탄) - 배열과 컬렉션 & 인터페이스와 추상 클래스 (2) | 2023.08.06 |
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (3탄) - 메서드와 메서드 호출 (0) | 2023.08.06 |
메서드와 클래스의 차이? (2) | 2023.08.06 |
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (2탄) - 객체 지향 프로그래밍 (Object-Oriented Programming, OOP) (2) | 2023.08.06 |