프로그래밍/[ Python ]

[Python] 예외처리 try, except

gooooooood 2024. 11. 14. 08:26
반응형

파이썬에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류를 처리하기 위한 기법입니다. 예외 처리 덕분에 오류가 발생해도 프로그램이 비정상적으로 종료되지 않고, 지정된 대체 작업을 수행하거나 오류 메시지를 사용자에게 적절히 제공할 수 있습니다.

기본적인 예외 처리 구문

파이썬에서 예외 처리는 try, except, else, finally 구문을 사용합니다.

  • try: 예외가 발생할 수 있는 코드를 작성합니다.
  • except: 예외가 발생했을 때 처리할 코드를 작성합니다.
  • else: 예외가 발생하지 않았을 때 실행할 코드를 작성합니다.
  • finally: 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성합니다.

 

기본 구조

try:
    # 예외가 발생할 수 있는 코드
except ExceptionType as e:
    # 예외 처리 코드
else:
    # 예외가 발생하지 않았을 경우 실행되는 코드
finally:
    # 항상 실행되는 코드 (자원 정리 등)

 

 

예시 1: 0으로 나누기 예외 처리

try:
    x = 10 / 0  # 0으로 나누기 시도
except ZeroDivisionError as e:
    print(f"오류 발생: {e}")
else:
    print("예외가 발생하지 않았습니다.")
finally:
    print("예외 처리 완료.")

 

설명: 0으로 나누기를 시도하면 ZeroDivisionError가 발생하고, 예외 처리 코드가 실행됩니다.

 

 

예시 2: 파일 열기 예외 처리

try:
    with open("non_existent_file.txt", "r") as f:
        content = f.read()
except FileNotFoundError as e:
    print(f"파일을 찾을 수 없습니다: {e}")
else:
    print("파일 읽기 성공")
finally:
    print("파일 처리 완료.")

설명: non_existent_file.txt라는 파일이 존재하지 않아 FileNotFoundError가 발생합니다. 예외 처리에서 오류 메시지가 출력됩니다.

 

 

예시 3: 사용자 입력에 대한 예외 처리

try:
    number = int(input("숫자를 입력하세요: "))  # 숫자로 변환
except ValueError as e:
    print(f"유효하지 않은 숫자 입력: {e}")
else:
    print(f"입력한 숫자는 {number}입니다.")
finally:
    print("입력 처리 완료.")

설명: 사용자가 숫자가 아닌 값을 입력할 경우 ValueError가 발생하고 예외 처리 코드가 실행됩니다.

 

예외 처리에서 주의할 점

  • 구체적인 예외를 처리하는 것이 좋습니다. except Exception처럼 모든 예외를 처리하면, 어떤 오류가 발생했는지 추적하기 어려울 수 있습니다.
  • 예외 처리 코드 내에서 불필요한 로직을 작성하지 않도록 하여 코드가 복잡해지지 않도록 합니다.
  • finally 구문은 자원 해제나 파일 닫기 등, 반드시 실행되어야 하는 코드에 유용합니다.

이러한 예외 처리 기법을 활용하면 프로그램이 예기치 않은 오류로 종료되지 않고 안정적으로 동작할 수 있습니다.

반응형

'프로그래밍 > [ Python ]' 카테고리의 다른 글

[Python] DataFrame (1)  (0) 2024.11.18
[Python] JSON 처리  (1) 2024.11.15
[Python] map  (0) 2024.11.13
[Python] List Comprehension  (0) 2024.11.12
[Python] Files (파일 관련)  (1) 2024.02.26