ArithmeticError 예외는 숫자 계산 과정에서 발생하는 모든 오류의 기본 클래스입니다. 파이썬에서 산술 연산과 관련된 주요 내장 예외들은 대부분 이 클래스를 상속받습니다.
ArithmeticError를 직접 상속받는 대표적인 내장 예외는 다음과 같습니다.
- OverflowError – 연산 결과가 표현 가능한 수치 범위를 초과할 때 발생합니다.
- ZeroDivisionError – 0으로 나누기 또는 0으로 나머지 연산을 수행할 때 발생합니다.
- FloatingPointError – 부동소수점 연산이 실패할 때 발생합니다.
따라서 except ArithmeticError 구문 하나만 사용해도 위 세 가지 예외를 한 번에 처리할 수 있습니다.
예제 코드
다음은 try-except 문을 활용해 ArithmeticError를 잡는 기본적인 방법입니다.
try:
result = 7 / 0
except ArithmeticError as e:
print(e)
print(type(e).__name__)
print('This is an example of catching ArithmeticError')
실행 결과
division by zero
ZeroDivisionError
This is an example of catching ArithmeticError
코드 설명
7 / 0은 0으로 나누는 연산이므로 ZeroDivisionError가 발생합니다. 이 예외는 ArithmeticError의 자식 클래스이기 때문에 except ArithmeticError as e 블록에서 정상적으로 잡히게 됩니다. 예외 객체 e에는 오류 메시지가 담겨 있으며, type(e).__name__을 통해 실제로 발생한 예외의 클래스 이름을 확인할 수 있습니다.
특정 예외를 별도로 세분화해서 처리하고 싶다면, 하위 예외(예: ZeroDivisionError)를 먼저 catch하고 그다음에 ArithmeticError를 catch하도록 except 절을 여러 개 작성하는 것이 좋습니다. 이렇게 하면 세밀한 오류 처리와 함께 산술 오류 전반에 대한 포괄적인 대응이 가능합니다.