try:
x = int(input('3의 배수를 입력하세요: '))
if x % 3 != 0: # x가 3의 배수가 아니면
raise Exception('3의 배수가 아닙니다.') # 예외를 발생시킴
print(x)
except Exception as e: # 예외가 발생했을 때 실행됨
print('예외가 발생했습니다.', e)
def three_multiple():
x = int(input('3의 배수를 입력하세요: '))
if x % 3 != 0: # x가 3의 배수가 아니면
raise Exception('3의 배수가 아닙니다.') # 예외를 발생시킴
print(x) # 현재 함수 안에는 except가 없으므로
# 예외를 상위 코드 블록으로 넘김
try:
three_multiple()
except Exception as e: # 하위 코드 블록에서 예외가 발생해도 실행됨
print('예외가 발생했습니다.', e)
[코드 설명]
1. three_multiple 함수 안에는 try, except이 없는 상태에서 raise로 예외 발생
2. 함수 바깥에 있는 except에서 예외 처리
- 예외가 발생하더라도, 현재 코드 블록에서 처리해줄 excpet가 없다면 except가 나올 때까지 계속 상위 코드 블록으로 올라간다.
만약 바깥에도 처리해줄 except가 없다면 코드 실행은 중지되고 에러가 표시된다.