Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 예외(Exception)를 처리하는 방법 완벽 가이드

Python에서 예외를 처리하는 가장 간단하고 기본적인 방법은 try-except 블록을 사용하는 것입니다. 프로그램 실행 중 발생할 수 있는 오류(예외)를 미리 예측하고, 이를 적절히 처리함으로써 프로그램이 비정상적으로 종료되는 것을 방지할 수 있습니다.

try-except 블록의 기본 구조

try-except 블록은 다음과 같은 방식으로 동작합니다.

  • try 블록: 오류가 발생할 가능성이 있는 코드를 작성합니다.
  • except 블록: try 블록에서 특정 예외가 발생했을 때 실행될 코드를 작성합니다.
  • else 블록(선택 사항): try 블록에서 예외가 발생하지 않았을 경우에만 실행됩니다.

예제 코드

아래 예제는 파일을 열고 쓰기를 시도하는 코드입니다. 파일이 읽기 모드("r")로 열렸기 때문에 쓰기 작업 시 IOError가 발생하며, except 블록이 이를 처리합니다.

try:
    fob = open("test.txt", "r")
    fob.write("This is my test file for exception handling!!")
except IOError:
    print("Error: can't find the file or read data")
else:
    print("Write operation is performed successfully on the file")
    fob.close()

실행 결과

Error: can't find the file or read data

코드 설명

위 코드의 실행 흐름은 다음과 같습니다.

  1. 파일 "test.txt"가 읽기 모드(r)로 열립니다.
  2. 읽기 전용으로 열린 파일에 쓰기를 시도하므로 IOError 예외가 발생합니다.
  3. 예외가 발생하면 except 블록의 에러 메시지가 출력되고, else 블록은 건너뛰어집니다.

만약 파일이 쓰기 가능한 모드(예: "w")로 정상적으로 열리고 쓰기 작업이 성공하면, else 블록이 실행되어 성공 메시지가 출력된 후 파일이 닫힙니다.

추가 팁: finally 블록 활용하기

예외 발생 여부와 관계없이 반드시 실행해야 하는 코드(예: 파일 닫기, 리소스 해제)가 있다면 finally 블록을 함께 사용하는 것이 좋습니다.

try:
    fob = open("test.txt", "r")
    fob.write("This is my test file for exception handling!!")
except IOError:
    print("Error: can't find the file or read data")
finally:
    fob.close()
    print("File closed")

finally 블록은 try 블록에서 예외가 발생하든 발생하지 않든 항상 실행되므로, 리소스 누수를 방지하는 데 매우 유용합니다.