[개발] 프로그램 지식

[java] try catch exception 10가지 종류

  • -
반응형

Try-Catch와 Exception 종류

try-catch 구문을 사용할 때, Java에서는 다양한 종류의 예외(Exception)를 처리할 수 있습니다. 여기에서는 자주 사용되는 예외 클래스들과 그 의미를 설명합니다.

 

 

 

 

 

1. NullPointerException

설명: 객체가 null인 상태에서 해당 객체의 메서드를 호출하거나 필드에 접근할 때 발생합니다.

String text = null;
try {
    System.out.println(text.length());
} catch (NullPointerException e) {
    System.out.println("NullPointerException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

 

2. ArrayIndexOutOfBoundsException

설명: 배열의 인덱스 범위를 벗어나 접근할 때 발생합니다.

int[] numbers = {1, 2, 3};
try {
    System.out.println(numbers[3]);
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("ArrayIndexOutOfBoundsException 발생: " + e.getMessage());
}

 

 

 

 

 

 

3. ArithmeticException

설명: 잘못된 산술 연산이 수행될 때 발생하며, 주로 0으로 나누는 연산에서 발생합니다.

try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("ArithmeticException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

4. ClassCastException

설명: 객체를 잘못된 타입으로 형변환하려 할 때 발생합니다.

Object obj = "Hello";
try {
    Integer num = (Integer) obj;
} catch (ClassCastException e) {
    System.out.println("ClassCastException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

5. IOException

설명: 입출력 작업 중 오류가 발생할 때 나타납니다. 파일을 읽거나 쓸 때, 파일이 존재하지 않거나 접근이 제한될 경우 주로 발생합니다.

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

try {
    File file = new File("test.txt");
    FileReader reader = new FileReader(file);
} catch (IOException e) {
    System.out.println("IOException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

 

6. FileNotFoundException

설명: 파일을 찾을 수 없을 때 발생합니다. IOException의 하위 클래스입니다.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;

try {
    File file = new File("nonexistent.txt");
    FileReader reader = new FileReader(file);
} catch (FileNotFoundException e) {
    System.out.println("FileNotFoundException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

 

7. SQLException

설명: 데이터베이스 관련 작업 중 오류가 발생할 때 나타납니다. SQL 쿼리가 잘못되었거나 데이터베이스에 연결할 수 없을 때 발생합니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

try {
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "user", "password");
    Statement stmt = conn.createStatement();
    stmt.executeQuery("SELECT * FROM nonexistent_table");
} catch (SQLException e) {
    System.out.println("SQLException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

 

8. InterruptedException

설명: 스레드가 실행을 기다리거나, 잠시 멈춘 상태에서 인터럽트를 받을 때 발생하는 예외입니다. Thread.sleep() 메서드와 같은 대기 상태에서 주로 발생합니다.

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    System.out.println("InterruptedException 발생: " + e.getMessage());
}

 

 

 

 

 

 

9. IllegalArgumentException

설명: 메서드에 전달된 인자가 유효하지 않을 때 발생하는 예외입니다.

public void setAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("나이는 0 이상이어야 합니다.");
    }
}

try {
    setAge(-1);
} catch (IllegalArgumentException e) {
    System.out.println("IllegalArgumentException 발생: " + e.getMessage());
}

 

 

 

 

 

 

 

 

10. NumberFormatException

설명: 숫자 형식이 아닌 문자열을 숫자로 변환하려 할 때 발생하는 예외입니다.

String number = "ABC";
try {
    int result = Integer.parseInt(number);
} catch (NumberFormatException e) {
    System.out.println("NumberFormatException 발생: " + e.getMessage());
}

이 외에도 많은 예외들이 존재하며, 예외 처리는 코드의 안정성을 높이기 위해 필수적으로 사용됩니다. Java에서는 기본 제공되는 예외 클래스 외에도 사용자 정의 예외 클래스를 만들어 특정 상황에 맞는 예외를 정의할 수도 있습니다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.