IT/Python3

파이썬 예외처리

어센트 2021. 12. 10. 14:54

예외처리

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)
except Exception as err: #위 두 에러를 제외한 나머지 에러의 경우
    print("알 수 없는 에러가 발생했습니다.")
    print(err)

에러 발생 시키기

try:
    print('한 자리 숫자 나누기 전용 계산기')
    num1 = int(input('첫 번째 숫자를 입력하세요 :'))
    num2 = int(input('두 번째 숫자를 입력하세요 :'))
    if num1 >= 10 or num2>= 10:
        raise ValueError
    print("{}/{}={}".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("입력값:{},{}".format(num1,num2))
    print("{}/{}={}".format(num1,num2,int(num1/num2)))

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

except BigNumberError as err: #사용자 정의 에러 
    print('에러가 발생하였습니다. 한 자리 숫자만 입력하세요')
    print(err)

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("입력값:{},{}".format(num1,num2))
    print("{}/{}={}".format(num1,num2,int(num1/num2)))

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

except BigNumberError as err: #사용자 정의 에러 
    print('에러가 발생하였습니다. 한 자리 숫자만 입력하세요')
    print(err)

finally: #오류가 발생하던 안하던 무조건 거치는 부분
    print('계산기를 이용해 주셔서 감사합니다.')