# #################################################################################
# 예외처리
# 소프트웨어는 죽으면 안된다
# 죽을 수 있는 그런 상황이나 의심스러운 부분
# 사용자의 입력을 받아서 처리되는 부분 ( 통제가 안되는 부분 )
# I/O를 처리하는 부분 ( 파일,네트워크 등등 )
# 이러한 것들은 모두 예외처리를 해야한다
# ################################################################################# 
# Exception : 모든 예외 상황의 Super Class
# 예외 상황이 어떤 것일지 알 수 없을때 => Exception => 일단 해결됨
# 예외가 일어날 경우 : 1 -> 3 -> 5
# 예외가 일어나지 않을 경우 : 1 -> 2 -> 4 -> 5 
# #################################################################################
try:
    print(1)
    # a = 1/0 # 0으로 나눌 수 없으니까
    print(2)
except Exception as e: # a=1/0 못하니까 이쪽으로 옴
    print(3, e)
else: # 무슨 상황이지? 예외가 발생하지 않는 경우
    print(4)
finally: # 무조건 마무리 수행코드
    print(5)