Exception Handling   예외 처리

(2021-09-26)

예외, try catch finally, Error Hnadling, 에러 처리

1. 예외 (Exception) 이란?

  ㅇ 특정 상황을 짐작케 하는 오류와는 달리, 예상치 못한 다양한 상황 발생에 대처할 수 있게 하는 것
     - 정상적인 처리 상태에서 벗어난 비정상 상태
        . 例) 잘 동작하던 서비스가 갑자기 정지하거나,
              디스크 부족 현상이 나타나거나,
              미리 정해지지 않는 시간에 발생되는 인터럽트 등
     - 하드웨어 및 소프트웨어 상황 모두 포함

  ㅇ 예외 역할
     - 프로그램 수행 정지와 같은 상황을 알려주고 이에 대처
        . 특정 상황 마다, 오류 메세지와 그와 동시에 수행이 중단(강제 종료)되는, 오류와는 달리,
        . 예외는, 오류 메세지 상황 마다 그에 맞는 처리를 할 수 있게 함
     - 때론, 프로그래밍을 유연하게 할 수 있는 도구 역할도 함


2. [프로그래밍]  예외 처리 (Exception Handling), 에러 처리 (Error Handling) 기능

  ㅇ 예외 처리 (Exception Handling)
     - 시스템신뢰도 향상을 위해,
     - 프로그래밍 언어에서 프로그램의 실행 도중 발생하는 예외상황을 발생,처리할 수 있게 하는 기능
        . 예외처리 능력 없는 언어 例) 과거 FORTRAN, PASCAL 등
        . 예외처리 능력 있는 언어 例) 미국방성의 Ada, C++, Java 등
           . Java 경우, 에러가 생겼을 때, 항상 예외를 발생시켜, 예외 처리로 모든 상황 대처 가능
           . PHP 경우, 예외 이외에 추가적으로 더 복잡한 형태의 에러 처리를 하기도 함

  ㅇ 예외 처리기 (Exception Handler)
     - 예외가 탐지되었을 때 만 실행되는 일종의 서브프로그램


3. [프로그래밍]  예외 탐지 및 처리 例) 

  ㅇ 예외 탐지 및 처리 (try ... catch ... finally 문)
     - (구조)
        try { 예외 발생 가능성이 있는 블록 구문 } 
        catch (예외 타입) { 예외 처리 }
        finally { ... }
     - (설명)
        . 만일, try 블록 내 예외 발생시, 즉각 이를 탐지하여 catch 구문을 실행
        . 따라서, try 블록 내 예외 발생 지점 이후 코드는, 실행하지 않게됨
        . 한편, finally 블록은, 예외 처리 여부에 상관없이 항상 한번 만 실행됨
     - (장점)
        . try ... catch ... finally 문으로 에러를 처리하면,
        . 프로그램이 강제로 종료되지 않게하면서,
        . 예외적인 에러 상황 마다 적절히 대응 가능 

  ㅇ 한편, 명시적/의도적으로 예외를 발생시키려면,
     - 예외 미발생시에도, try 블록 내에서,
     - 명시적으로 throw 구문을 사용하면,
        . 例) throw Error("...");
     - catch 블록이 실행됨


4. [프로그래밍]  가능한 예외 또는 에러 상황들

  ㅇ SyntaxError  :  문법 에러
  ㅇ ReferenceError  :  참조 에러
  ㅇ TypeError  :  타입 에러
  ㅇ RangeError  :  값 허용 범위 벗어난 에러
  ㅇ Error  :  기타 일반적인 에러


[예외,이벤트 처리] 1. 예외 처리 2. 트랩 3. 인터럽트 4. 이벤트

 
        최근수정     요약목록     참고문헌