if 문 내에서 파이썬 예외 처리하기
파이썬에서는 try-except 블록과 if 문을 함께 사용하면 특정 조건에서 발생하는 예외를 효과적으로 처리할 수 있습니다. 아래 예제는 0으로 나누는 상황(ZeroDivisionError)을 if 문으로 검사하고, 예외가 발생하면 이를 잡아(catch) 처리하는 방법을 보여줍니다.
예제 코드
a, b = 5, 0
try:
if b != 0:
print(a / b)
else:
a / b
raise ZeroDivisionError
except Exception as e:
print(e)실행 결과
division by zero
코드 동작 방식
위 코드의 흐름은 다음과 같습니다.
1. 조건 검사: if 문에서 b != 0 조건을 확인합니다. b가 0이 아니라면 나눗셈 결과를 정상적으로 출력합니다.
2. 예외 발생: b가 0인 경우에는 의도적으로 raise ZeroDivisionError를 호출하여 예외를 발생시킵니다. 실제로 a / b 연산 자체가 0으로 나누기를 시도하기 때문에 파이썬이 자동으로 ZeroDivisionError를 발생시키기도 합니다.
3. 예외 처리: except Exception as e 블록이 발생한 예외를 잡아, 예외 객체 e에 담긴 오류 메시지를 화면에 출력합니다.
핵심 포인트
- try 블록 안에서는 예외가 발생할 가능성이 있는 코드를 작성합니다.
- if 문을 사용하면 예외가 발생하기 전에 조건을 미리 검사할 수 있어 코드의 의도를 더 명확하게 표현할 수 있습니다.
- raise 키워드를 사용하면 개발자가 원하는 시점에 직접 예외를 발생시킬 수 있습니다.
- except 블록에서는 발생한 예외를 받아 로그 출력, 사용자 안내 등 적절한 후속 처리를 수행합니다.
이처럼 if 문과 try-except 구조를 조합하면 프로그램이 비정상적으로 종료되는 것을 방지하고, 오류 상황을 우아하게(gracefully) 처리할 수 있습니다.