1. 기본적인 try... except... finally, 그리고 임의로 raise 하기

# 예외처리
>>> def calc():
        try:
            num1 = int(input("첫 번재 숫자 : "))
            num2 = int(input("두 번째 숫자 : "))

            # 기본 예외 raise 시키기
            if num1 == 0 or num2 == 0:
                raise Exception("0은 입력할 수 없습나다.")

            num3 = num1 / num2
            print("{0} / {1} = {2}".format(num1, num2, num1 / num2))

        except Exception as err:
            print("OtherError : ", err)
            
        finally:
            print("exit")

>>> calc()
첫 번재 숫자 : 6
두 번째 숫자 : 3
6 / 3 = 2.0
exit

>>> calc()
첫 번재 숫자 : 6
두 번째 숫자 : 삼
OtherError :  invalid literal for int() with base 10: '삼'
exit

>>> calc()
첫 번재 숫자 : 2
두 번째 숫자 : 0
OtherError :  0은 입력할 수 없습나다.
exit

 

 

2. 특정예외 처리

# 특정예외 처리
>>> def calc():
        try:
            num1 = int(input("첫 번재 숫자 : "))
            num2 = int(input("두 번째 숫자 : "))
            num3 = num1 / num2
            print("{0} / {1} = {2}".format(num1, num2, num1 / num2))

        except ValueError as err:
            print("ValueError : ", err)

        except Exception as err:
            print("OtherError : ", err)
            
        finally:
            print("exit")

		
>>> calc()
첫 번재 숫자 : 6
두 번째 숫자 : 삼
ValueError :  invalid literal for int() with base 10: '삼'
exit

 

 

3. 사용자정의 예외처리

# 사용자정의 예외처리
>>> class CustomError(Exception):
        def __init__(self, msg):
            self.msg = msg
            
        def __str__(self):
            return self.msg

>>> def calc():
        try:
            num1 = int(input("첫 번재 숫자 : "))
            num2 = int(input("두 번째 숫자 : "))

            if num1 == 0 or num2 == 0:
                raise CustomError("영을 입력할 수 없습니다.")
            
            num3 = num1 / num2
            print("{0} / {1} = {2}".format(num1, num2, num1 / num2))

        except CustomError as err:
            print("CustomError : ", err)

        except ValueError as err:
            print("ValueError : ", err)

        except Exception as err:
            print("OtherError : ", err)
            
        finally:
            print("exit")

		
>>> calc()
첫 번재 숫자 : 6
두 번째 숫자 : 0
CustomError :  영을 입력할 수 없습니다.
exit