[파이썬] 파이썬 2와 파이썬 3의 예외 처리 및 에러 핸들링 차이
파이썬은 강력한 예외 처리 기능을 제공하여 프로그램에서 발생하는 예외 상황을 적절하게 처리할 수 있습니다. 그러나 파이썬 2와 파이썬 3에서 예외 처리 및 에러 핸들링 방식에는 몇 가지 차이가 있습니다. 이 블로그 글에서는 파이썬 2와 파이썬 3 간의 주요한 예외 처리 및 에러 핸들링 차이점을 살펴보겠습니다.
예외 처리 구문
파이썬 2에서는 try
, except
, finally
키워드를 사용하여 예외 처리를 구현합니다.
try:
# 예외가 발생할 수 있는 코드
except ExceptionType as e:
# 예외 처리 코드
finally:
# 예외 발생 여부에 상관없이 실행되는 코드
반면에 파이썬 3에서는 as
키워드를 생략하고 Exception
클래스만을 사용하여 예외 처리를 구현합니다.
try:
# 예외가 발생할 수 있는 코드
except ExceptionType:
# 예외 처리 코드
finally:
# 예외 발생 여부에 상관없이 실행되는 코드
예외 타입 처리 방식
파이썬 2에서는 예외 타입을 처리할 때 except
키워드 다음에 에러 타입을 직접 명시합니다.
try:
# 예외가 발생할 수 있는 코드
except ExceptionType1:
# 예외 처리 코드
except ExceptionType2:
# 예외 처리 코드
하지만 파이썬 3에서는 여러 예외를 동시에 처리하고자 할 때, 여러 예외 타입을 괄호로 묶어 처리합니다.
try:
# 예외가 발생할 수 있는 코드
except (ExceptionType1, ExceptionType2):
# 예외 처리 코드
예외 메시지 출력 방식
파이썬 2에서는 예외 메시지를 출력하기 위해 as
키워드를 사용하여 예외 객체를 받아옵니다.
try:
# 예외가 발생할 수 있는 코드
except ExceptionType as e:
print "예외 발생: ", e
파이썬 3에서는 as
키워드 없이 예외 객체의 정보를 받아와서 출력할 수 있습니다.
try:
# 예외가 발생할 수 있는 코드
except ExceptionType as e:
print("예외 발생:", e)
예외 발생 방식
파이썬 2에서는 raise
키워드를 사용하여 예외를 발생시킬 수 있습니다.
raise ExceptionType("예외 발생")
파이썬 3에서는 예외를 발생시킬 때 괄호를 사용하여 예외 객체를 생성해야 합니다.
raise ExceptionType("예외 발생")
결론
파이썬 2와 파이썬 3에서의 예외 처리 및 에러 핸들링 방식에는 몇 가지 차이가 있습니다. 파이썬 3에서는 예외 타입 처리, 예외 메시지 출력 등에 대해 일부 변경이 있기 때문에 주의가 필요합니다. 프로젝트를 이전하거나 파이썬 버전 간 이식성을 고려할 때 이러한 차이점을 고려해야 합니다.