Maron's DATA Log

[Python] 예외처리 - Try / Except / Finally 본문

Python

[Python] 예외처리 - Try / Except / Finally

maron2ee 2020. 12. 1. 16:21

# 예외처리

1.

try: 

   print("나누기 전용 계산기입니다.")

   nums = [ ]

   num1 = int(input("첫 번째 숫자를 입력하세요 : "))

   num2 = int(input("두 번째 숫자를 입력하세요 : "))

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

except ValueError:

   print("에러! 잘못된 값을 입력하였습니다.")

except ZeroDivisionError as err:

   print(err)

 

2.

try: 

   print("나누기 전용 계산기입니다.")

   nums = [ ]

   nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))

   nums.append(int(input("두 번째 숫자를 입력하세요 : ")))

   nums.append(int(nums[0] / nums[1]))

   print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))

 

except ValueError:

   print("에러! 잘못된 값을 입력하였습니다.")

except ZeroDivisionError as err:

   print(err)

 

3.

try: 

   print("나누기 전용 계산기입니다.")

   nums = [ ]

   nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))

   nums.append(int(input("두 번째 숫자를 입력하세요 : ")))

   print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))

 

except ValueError:

   print("에러! 잘못된 값을 입력하였습니다.")

except ZeroDivisionError as err:

   print(err)

except Exception as err:

   print("알 수 없는 에러가 발생하였습니다.")

   print(err)

 

 

# 에러 발생시키기 

try:

   print("한 자리 숫자 나누기 전용 계산기입니다.")

   num1 = int(input("첫 번째 숫자를 입력하세요 : "))

   num2 = int(input("두 번째 숫자를 입력하세요 : "))

   if num1 >= 10 or num2 >= 10:

     raise ValueError

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

except ValueError:

   print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")

 


# 사용자 정의 예외처리

class BigNumberError(Exception):

   def __init__(self, msg):

     self.msg = msg

 

   def __str__(self):

     return self.msg

 

try: 

   print("한 자리 숫자 나누기 전용 계산기입니다.")

   num1 = int(input("첫 번째 숫자를 입력하세요 : "))

   num2 = int(input("두 번째 숫자를 입력하세요 : "))

   if num1 >= 10 or num2 >= 10:

     raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))

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

except ValueError: 

   print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")

except BigNumberError as err

   print("에러가 발생하였습니다. 한 자리 숫자만 입력하세요.")

   print(err)

 

 

# try ~ finally

: 예외처리 중 정상적으로 수행되건, 오류가 발생하건 상관 없이 무조건 실행되는 구문

 

class BigNumberError(Exception):

   def __init__(self, msg):

     self.msg = msg

 

   def __str__(self):

     return self.msg

 

try

   print("한 자리 숫자 나누기 전용 계산기입니다.")

   num1 = int(input("첫 번째 숫자를 입력하세요 : "))

   num2 = int(input("두 번째 숫자를 입력하세요 : "))

   if num1 >= 10 or num2 >= 10:

     raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))

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

except ValueError: 

   print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")

except BigNumberError as err

   print("에러가 발생하였습니다. 한 자리 숫자만 입력하세요.")

   print(err)

finally:

   print("계산기를 이용해 주셔서 감사합니다.")

'Python' 카테고리의 다른 글

[Python] NumPy  (0) 2020.12.02
[Python] 모듈, 패키지, 내장함수, 외장함수  (0) 2020.12.01
[Python] 클래스 / 메소드 (Method) / 상속  (0) 2020.12.01
[Python] 입출력  (0) 2020.11.30
[Python] 함수  (0) 2020.11.30
Comments