본문 바로가기
개발(Develop)/파이썬(Python)

[Python] 치킨 주문 파이썬 프로그램 / 예외처리, 에러 발생시키기, 사용자 정의 예외처리

by 왁왁s 2022. 3. 1.

오늘은 파이썬의 예외처리를 하는 것을 활용해

치킨을 주문했을 때 대기 번호를 부여하는 것을 해보겠다.

 

만약 치킨이 매진 되었다면 우리가 직접 만든 사용자 정의 예외처리로

매진되었음을 에러로 발생시킬 것이다.

 

코드는 아래와 같다.

 

사용자가 정의한 예외처리를 하기 위해

'SoldOutError' 클래스를 만들고 Exception 클래스를 상속 받은 뒤

except: 구문에서 해당 에러가 발생했을 때의 동작을 작성한다.

 

그리고

raise를 통해 강제로 에러를 발생시킨다.

 

 

try: 

except:

 

예외처리 구문을 사용해 

치킨을 주문할 때마다 대기번호를 부여하고

남은 치킨의 개수를 뺀다.

 

class SoldOutError(Exception):
    pass

chicken = 10
waiting = 1

while True:
    try:
        print("[남은 치킨 : {0} 마리]".format(chicken))
        order = int(input("치킨 몇 마리 주문하시겠습니까? : "))

        if order > chicken:
            print("재료가 부족합니다")
        elif order <= 0:
            raise ValueError
        else:
            print("[대기번호 : {0}] {1} 마리 주문이 완료되었습니다.".format(waiting, order))
            waiting += 1
            chicken -= order

        if chicken == 0:
            raise SoldOutError

    except ValueError:
        print("1보다 큰 수를 입력히세요")

    except SoldOutError:
        print("재고가 소진되었습니다")
        break

실행 결과 :

댓글