Skip to content

예외처리 #14

@Sam1000won

Description

@Sam1000won

예외 처리


1. 예외의 개념

  • 예외(Exception): 프로그램 실행 중 발생하는 비정상적인 상황을 의미. 예를 들어 배열의 인덱스를 초과하거나, 잘못된 형식의 데이터를 변환하려고 할 때 예외가 발생할 수 있음.
  • 예외 처리: 예외가 발생했을 때 프로그램이 중단되지 않고 적절한 처리를 하도록 하는 과정.

2. 기본 구조

  • 자바의 예외처리 구조
    try {
        // 예외가 발생할 가능성이 있는 코드
    } catch (예외타입 e) {
        // 예외가 발생했을 때 실행할 코드
    } finally {
        // 항상 실행되는 코드 (예외 발생 여부와 관계없이)
    }
    

3. try 블록

  • 목적: 예외가 발생할 가능성이 있는 코드를 포함. 이 블록 내에서 예외가 발생하면 즉시 catch 블록으로 제어가 넘어감.
    try {
        arr[0] = "12345"; // 정상적인 코드
        arr[1] = "a12345"; // 비숫자 문자열
        arr[2] = "45678"; // ArrayIndexOutOfBoundsException 발생
    }
    

4. catch 블록

  • 목적: try 블록에서 발생한 예외를 처리. 여러 개의 catch 블록을 사용하여 다양한 예외를 처리할 수 있음.
  • 예외를 포괄적으로 처리: JDK 1.7부터는 여러 개의 예외를 하나의 catch 블록에서 처리 가능.
    catch (ArrayIndexOutOfBoundsException | NumberFormatException e) {
        System.out.println("배열의 크기를 확인하거나 숫자만 들어있는지 확인하세요.");
        e.printStackTrace();
    }
    

5. finally 블록

  • 목적: 예외 발생 여부와 관계없이 항상 실행되는 코드를 포함. 주로 자원 정리(파일 닫기, 데이터베이스 연결 해제 등)에 사용.
    finally {
        System.out.println("끝");
    }
    

6. 예외의 종류

  • 체크 예외 (Checked Exception): 컴파일 시에 처리해야 하는 예외로, IOException, SQLException 등이 있으며 반드시 try-catch로 처리해야 함.
  • 언체크 예외 (Unchecked Exception): 런타임에 발생하는 예외로, NullPointerException, ArrayIndexOutOfBoundsException, NumberFormatException 등이 있음. 이들은 선택적으로 처리 가능.

7. 예외처리의 중요성

  • 프로그램의 안정성: 예외처리를 통해 프로그램이 예외 상황에서도 중단되지 않고 계속 실행될 수 있도록 함.
  • 디버깅: 예외 발생 시 상세한 정보를 제공하여 문제를 쉽게 파악하고 수정할 수 있도록 함.
  • 유지보수: 예외를 적절히 처리함으로써 코드의 가독성과 유지보수성을 높임.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions