예외(exception)에는 인수(argument)가 포함될 수 있습니다. 인수란 발생한 문제에 대한 추가 정보를 담고 있는 값으로, 어떤 내용이 담기는지는 예외의 종류에 따라 달라집니다. except 절에 변수를 지정하면 이 예외 인수를 손쉽게 확인할 수 있습니다.
예제
try:
b = float(56 + 78 / 0)
except Exception as Argument:
print('This is the Argument\n', Argument)
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
This is the Argument division by zero
0으로 나누려는 시도가 있었기 때문에 ZeroDivisionError가 발생했고, 이때 예외 인수인 'division by zero' 메시지가 변수에 전달되어 출력된 것입니다.
단일 예외와 다중 예외 처리
단일 예외만 처리하는 코드라면 except 문에서 예외 이름 뒤에 변수를 붙여 작성할 수 있습니다. 반면 여러 개의 예외를 한 번에 처리해야 하는 경우에는 예외 튜플(tuple) 뒤에 변수를 작성하면 됩니다.
try:
# 실행 코드
except (ValueError, TypeError) as Argument:
print('발생한 오류:', Argument)
예외 인수의 구성
이 변수는 예외의 값을 전달받으며, 대부분 예외가 발생한 원인을 포함하고 있습니다. 변수는 단일 값을 받을 수도 있고, 여러 값을 튜플 형태로 받을 수도 있습니다. 이 튜플에는 일반적으로 다음과 같은 정보가 들어 있습니다.
- 오류 문자열: 오류의 내용을 설명하는 메시지
- 오류 번호: 오류를 식별하는 고유 번호
- 오류 위치: 오류가 발생한 파일명과 줄 번호 등의 위치 정보
참고: 파이썬 2에서는 except Exception, Argument: 형식으로 작성했지만, 파이썬 3부터는 위 예제처럼 as 키워드를 사용하는 문법이 표준입니다. 가독성과 호환성을 위해 최신 문법을 사용하는 것이 좋습니다.