파이썬에서 하나의 except 블록으로 여러 예외 처리하기
파이썬에서는 하나의 except 블록만 사용해도 여러 개의 예외를 동시에 처리할 수 있습니다. 예외 절(except clause)에는 괄호로 묶인 튜플(tuple) 형태로 여러 예외를 지정할 수 있으며, 이 방법을 사용하면 코드를 간결하게 유지하면서 다양한 오류 상황에 대응할 수 있습니다.
기본 문법
여러 예외를 처리하는 기본적인 코드 구조는 다음과 같습니다.
try:
raise_certain_errors():
except (CertainError1, CertainError2, ...) as e:
handle_error()
'as' 키워드 사용하기
예외와 변수를 쉼표로 구분하는 방식은 Python 2.6 및 2.7에서는 여전히 동작하지만, 공식적으로 폐기(deprecated)된 문법이며 Python 3에서는 더 이상 작동하지 않습니다. 따라서 최신 파이썬 코드에서는 반드시 as 키워드를 사용해야 합니다.
괄호가 필요한 이유
여러 예외를 지정할 때 괄호는 필수입니다. 그 이유는 쉼표가 오류 객체(error object)를 변수 이름에 할당하는 용도로도 사용되기 때문입니다. 즉, as 키워드가 할당 역할을 담당하고, 쉼표는 예외들을 구분하는 역할만 하도록 괄호로 묶어 명확하게 해야 합니다.
오류 객체의 이름은 자유롭게 정할 수 있습니다. 예를 들어 error, e, err 등 원하는 이름을 사용하면 됩니다.
실제 적용 예제
위 내용을 바탕으로 실제 코드는 다음과 같이 작성할 수 있습니다.
try:
# do something
except (someException, someotherException) as err:
# handle_exception()
이처럼 괄호로 묶은 튜플과 as 키워드를 활용하면, 여러 종류의 예외를 하나의 except 블록에서 깔끔하게 처리할 수 있습니다.