try:~except:를 이용하여 에러 발생시의 출력값 설정이 가능함
에러의 종류에 따라 except에 입력하는 명령어가 달라짐
명령어 없이 그냥 except만 입력시 에러의 종류에 상관없이 모든 에러 발생시의 출력값 설정 가능
(단, 따로 명령어가 설정되어 있을 경우에는 그 명령어를 제외한 모든 에러에 적용)
ex) ValueError = 숫자를 입력해야 하는데 문자를 입력한 경우 (다른 종류의 가치값 입력)
ZeroDivisionError = 0으로 다른 숫자를 나누려하는 경우
Exception as 를 이용하여 오류의 종류를 파악할 수 있음
if문에서 raise를 이용하여 조건 만족시 고의적으로 에러를 발생 시킬 수 있음
class 에러이름(Exception)를 이용하여 사용자가 새로운 에러를 정의할 수 있음
새로 정의한 에러 발생시 출력될 메세지를 설정하고 싶으면 __init__과 __str__를 이용하여 설정 가능
finally = try: 구문의 맨 마지막에 설정하여 에러가 발생하든 안하든 맨 마지막에 해당 설정을 무조건 실행하도록 하는 기능
chicken = 10
waiting = 1
class SoldOutError(Exception):
pass
while(True):
try:
print("[남은 치킨] : {}".format(chicken))
order = int(input("치킨 몇 마리 주문하시겠습니까?"))
if order > chicken:
print("재료가 부족합니다.")
elif order < 1:
raise ValueError
else:
print("[대기번호 {}] {} 마리 주문이 완료되었습니다."\
.format(waiting, order))
waiting += 1
chicken -= order
if chicken == 0:
raise SoldOutError("재고가 소진되어 더 이상 주문을 받지 않습니다.")
except ValueError:
print("잘못된 값을 입력하셨습니다.")
except SoldOutError as err:
print(err)
break
치킨 주문 Quiz
try 내에서 첫번째 if,elif,else는 order에 대한 조건들이고 두번째 if는 chicken에 대한 조건이라 if문 두개 설정 가능
break = 프로그램 종료
'파이썬 독학 (나도코딩) > Python' 카테고리의 다른 글
빅데이터 부트캠프 14일차 (0) | 2022.07.21 |
---|---|
파이썬 독학 (나도코딩) 8 (0) | 2022.05.22 |
파이썬 독학 (나도코딩) 6 (0) | 2022.05.19 |
파이썬 독학 (나도코딩) 5 (0) | 2022.05.19 |
파이썬 독학 (나도코딩) 4 (0) | 2022.05.18 |
댓글