헬린코린이

[Python] 7일차 본문

Programming/Python

[Python] 7일차

HCD 2023. 5. 2. 15:33
# 예외처리 - Chapter

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: #err 발생한 에러 사항을 출력할 수 있다.
    print(err)
except Exception as err:
    print("알 수 없는 에러가 발생했습니다.")
    print(err)
    
    
# 에러 발생시키기 - Chapter

try:
    print("한 자리 숫자 나누기 전용 계산기입니다.")
    num1 = int(input("첫 번째 숫자를 입력하세요 : "))
    num2 = int(input("두 번째 숫자를 입력하세요 : "))
    if num1 >= 10 or num2 >= 10:
        raise ValueError #의도적으로 필요할떄 특정 에러를 발생시켜 except로 넘어감 
                        # raise 예외 던지기
    print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
    print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요")

# 사용자 정의 예외처리 - Chapter
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 - Chapter
# 정상적으로 실행되는 에러가나든 무조건 실행되는 구분

try:
    print("try 문 안")
except Exception as err:
    print("에러가 발생했습니다.")
finally:
    print("에러가 발생해도 발생안해도 실행되는 구문")

 

 

자료 : https://www.youtube.com/watch?v=kWiCuklohdY&t=1574s

Comments