[정보처리산업기사] 56강 예외처리

DongHo Im·2022년 1월 25일
0

정보처리산업기사

목록 보기
55/86
post-custom-banner

1. 예외 처리의 개요

프로그램의 정상적인 실행을 방해하는 조건이나 상태를 예외 (Exception) 라고 하며, 이러한 예외가 발생했을 때를 대비하여 작성해 놓은 처리 루틴을 수행하도록 하는 것을 예외 처리 (Exception Handling) 라고 한다.

  • 예외가 발생했을 때 일반적인 처리 루틴은 프로그램을 종료시키거나 로그를 남기도록 하는 것이다.

  • C++, Ada, Java 자바스크립트와 같은 언어에는 예외 처리 기능이 내장되어 있으며, 그 외 언어에서는 필요한 경우 조건문을 이용해 예외 처리 루틴을 작성한다.

  • 예외의 원인에는 컴퓨터 하드웨어 문제, 운영체제의 설정 실수, 라이브러리 손상, 사용자의 입력 실수, 받아들일 수 없는 연산, 할당하지 못하는 기억장치 접근 등 다양하다.

2. Java의 예외 처리

Java는 예외를 객체로 취급하며, 예외와 관련된 클래스를 java.lang 패키지에서 제공한다.

  • Java 에서는 try~catch 문을 이용해 예외를 처리한다.
    • try 블록 코드를 수행하다 예외가 발생하면 예외를 처리하는 catch 블록으로 이동하여 예외 처리 코드를 수행하므로 예외가 발생한 이후의 코드는 실행되지 않는다.
    • catch 블록에서 선언한 변수는 해당 catch 블록에서만 유효하다.
    • try~catch 문 안에 또 다른 try~catch 문을 포함할 수 있다.
    • try~catch 문 안에서는 실행 코드가 한 줄이라도 중괄호({ }) 를 생략할 수 없다.
  try {
    // 예외가 발생할 가능성이 있는 코드
  } catch (예외객체1 매개변수) {
    // 예외객체1에 해당하는 예외 발생 시 처리 코드
  } catch (예외객체2 매개변수) {
    // 예외객체2에 해당하는 예외 발생 시 처리 코드
    ...
  } catch (예외객체n 매개변수) {
    // 예외객체n에 해당하는 예외 발생 시 처리 코드
  } catch (Exception 매개변수) {
    // 예외객체 1~n 에 해당하지 않는 예외 발생 시 처리 코드
  } finally {
    // 예외의 발생 여부와 관계 없이 무조건 처리되는 코드
  }
  • 일반적으로 예외가 발생한 경우에는 ‘try → catch → finally’ 문 순서로 진행되며, 예외가 발생하지 않은 경우에는 ‘try → finally’ 문 순서로 진행된다.

  • finally 문은 예외 발생과 관계없이 무조건 수행되는 블록이며, 생략이 가능하다.


3. Java의 주요 예외 객체

  • ClassNotFoundException : 클래스를 찾지 못한 경우
  • NoSuchMethodException : 메소드를 찾지 못한 경우
  • FileNotFoundException : 파일을 찾지 못한 경우
  • InterruptedIOException : 입출력 처리가 중단된 경우
  • ArithmeticException : 0으로 나누는 등의 산술 연산에 대한 예외가 발생한 경우
  • IllegalArgumentException : 잘못된 인자를 전달한 경우
  • NumberFormatException : 숫자 형식으로 변환할 수 없는 문자열을 숫자 형식으로 변환한 경우
  • ArrayIndexOutOfBoundsException : 배열의 범위를 벗어난 접근을 시도한 경우
  • NegativeArraySizeException : 0보다 작은 값으로 배열의 크기를 지정한 경우
  • NullPointerException : 존재하지 않는 객체를 참조한 경우
profile
[DATABASE] 비전공자 출신의 개발 도전!
post-custom-banner

0개의 댓글