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

파이썬(Python)에서 TypeError 예외를 잡는 방법

TypeError는 서로 호환되지 않는 타입의 객체를 결합하거나, 함수에 잘못된 타입의 객체를 인자로 전달할 때 발생하는 대표적인 파이썬 예외입니다.

TypeError가 발생하는 일반적인 경우

  • 리스트와 문자열처럼 서로 다른 자료형을 연산자로 결합하려 할 때
  • 숫자와 문자열을 더하려고 할 때
  • 함수에 기대한 타입과 다른 객체를 전달했을 때

이러한 오류를 프로그램이 비정상적으로 종료되지 않도록 처리하려면 try-except 블록을 사용합니다. except TypeError as e 구문을 활용하면 발생한 예외 객체를 변수에 담아 오류 메시지와 예외의 타입까지 확인할 수 있습니다.

예제 코드

import sys

try:
    ny = 'Statue of Liberty'
    my_list = [3, 4, 5, 8, 9]
    print(my_list + ny)
except TypeError as e:
    print('오류 메시지:', e)
    print('예외 타입:', type(e))

실행 결과

can only concatenate list (not "str") to list
<class 'TypeError'>

코드 설명

위 예제에서는 리스트(my_list)와 문자열(ny)을 + 연산자로 결합하려고 시도합니다. 리스트에는 리스트만 연결(concatenate)할 수 있기 때문에 파이썬은 TypeError를 발생시킵니다.

  • try 블록 안에 오류가 발생할 가능성이 있는 코드를 작성합니다.
  • 오류가 발생하면 즉시 except TypeError 블록으로 제어가 넘어갑니다.
  • as e를 통해 예외 객체를 받으면 e에 상세한 오류 메시지가 담겨 있어 디버깅에 유용합니다.
  • type(e)를 호출하면 발생한 예외의 클래스인 TypeError를 확인할 수 있습니다.

이처럼 try-except 구문으로 TypeError를 적절히 처리하면, 잘못된 입력이 들어와도 프로그램이 중단되지 않고 안정적으로 동작하도록 만들 수 있습니다.