예외 처리

예외 처리 (Exceptions)

프로그램이 실행 중 오류를 만나면 그대로 중단되기보다, 오류 상황을 처리하고 복구할 수 있으면 좋겠죠. 파스칼에서는 이를 **예외(exception)**라는 개념으로 다뤄요. 예외는 클래스(class)와 밀접하게 연결되어 있고, 예외 지원은 크게 세 가지 구조로 나뉘어요.

출처: Free Pascal Reference — Chapter 17 Exceptions

본문

예외 지원의 세 가지 구조

  • Raise 문(statement) — 예외를 발생시켜요. 보통 오류 조건을 알리기 위해 사용하지만, 실행을 중단하고 프로그램의 잘 알려진 지점으로 즉시 돌아가고 싶을 때도 쓸 수 있어요.
  • Try ... Except 블록 — 블록 범위 안에서 발생한 예외를 잡아내고, 예외 복구 코드를 제공해요.
  • Try ... Finally 블록 — 예외 발생 여부와 상관없이 반드시 실행될 코드를 강제해요. 보통 예외가 발생했을 때 메모리를 정리하거나 파일을 닫는 데 쓰여요. 컴파일러는 프로시저 주변에 메모리 일관성을 유지하기 위해 많은 암시적 Try ... Finally 블록을 생성하기도 해요.

사용 모드

예외는 클래스를 사용하기 때문에, 예외를 쓰려면 Object Pascal 모드 중 하나가 필요해요.

{$MODE OBJFPC}

또는

{$MODE DELPHI}

이 장에서 다룰 내용

  • raise 문 (17.1)
  • try...except 문 (17.2)
  • try...finally 문 (17.3)
  • 예외 처리의 중첩 (17.4)
  • 예외 클래스 (17.5)

더 알아보기