Exception
예외처리: 프로그램 실행 중에 예기치 못해 발생하는 예외 상황을 미리 예측하고 처리하는 것.
Java에서 발생하는 다양한 예외(Exception)는 java.lang.Exception 클래스를 상속받는 하위 클래스들이다. 주요 예외 클래스는 다음과 같다.
- ArithmeticException: 수학 연산 중에 발생. 0으로 나누는 등의 오류 포함.
- NullPointerException: null 객체에 접근하려고 할 때 발생.
- ArrayIndexOutOfBoundsException: 배열 요소에 유효하지 않은 인덱스로 접근하려고 시도할 때 발생.
- FileNotFoundException: 파일을 찾을 수 없을 때 발생. → 파일 저장 및 불러오기는 예외 처리가 필수적
- IOException: 입출력 작업 중에 발생하는 일반적인 입출력 예외. → 자주 사용
- SQLException: 데이터베이스 작업 중에 발생하는 SQL 관련 예외. → DB 사용은 예외 처리가 필수적
- ClassNotFoundException: 클래스가 존재하지 않을 때 발생.
- IllegalArgumentException: 메서드에 전달된 인수가 잘못된 경우 발생.
→ 이러한 클래스들을 활용한 예외처리는 코드 실행 중 예상치 못한 문제에 대처하기 위해 사용된다. 이를 통해 프로그램은 예외 상황에 대응하여 안정성을 유지하고 개발자와 사용자에게 적절한 오류 메시지를 표시하는 등 대처할 수 있다.
예외 처리 방법
try {
// 오류가 발생할 수 있다고 예상되는 수행문
} catch (예외_클래스 e) {
// 해당 예외가 발생했을 때의 수행문
// 여러 오류가 예상되는 상황에 대비해 catch는 각 클래스를 담은 여러 블록 가능
// 발생 가능한 오류의 종류가 정확히 예측되지 않거나 다양한 오류가 예상되면 그냥 Exception으로 받기도 함
// 주로 따로 작성한 오류 메시지 출력 or e.printStackTrace();
} finally {
// 오류 발생 여부와 관련 없이 반드시 수행해야 하는 수행문 (옵션)
}
throws
: 예외가 발생했을 때 예외(가 있는 함수)를 호출한 쪽에서 처리하도록 던져버리는 것
// 함수명 뒤에 throws 발생가능한_예외_클래스
public static int divide(int i, int j) throws ArithmeticException{
int k = i / j;
return k;
}
throw
: 강제로 오류를 발생시키기 (보통은 오류를 떠넘기는 throws와 같이 사용)
public class Main {
public static void main(String[] args) {
int i = 10;
int j = 0;
try{
int k = divide(i, j);
System.out.println(k);
}catch(IllegalArgumentException e){
System.out.println("0으로 나누면 안 됨.");
}
}
public static int divide(int i, int j) throws IllegalArgumentException{
if(j == 0){
throw new IllegalArgumentException("0으로는 못 나눔.");
}
int k = i / j;
return k;
}
}
사용자 정의 Exception
Exception 클래스나 그 하위 클래스를 상속받아 사용자가 예외 클래스를 정의하여 사용할 수 있다.
참고 - 프로그래머스 사용자 정의 Exception
'Study with me > TECH!T back-end shcool 7' 카테고리의 다른 글
week_04 Optional +@ (0) | 2023.11.08 |
---|---|
week_04 JAVA 9/11 (0) | 2023.11.07 |
week_03 HTML&CSS&JavaScript 2/2 (8) | 2023.11.03 |
week_03 HTML&CSS&JavaScript 1/2 (0) | 2023.11.02 |
week_03 MySQL 2/2 (0) | 2023.11.01 |