신규 블로그를 만들었습니다!
이전글...
2018/01/10 - [Language/Python] - Python :: 예외 처리에 대해 알아보자 (try ~ except) #12
|
이번에는 일부러 예외를 발생시키는 것을 알아보겠습니다.
try:
실행할 코드
raise 예외객체(예외내용)
except 예외객체:
실행할 코드
raise코드를 만나면 에러를 발생시켜 except로 빠지게 됩니다.
raise 를 이용한 예제를 살펴보겠습니다.
# 예외 발생시키기
try:
print('예외 발생시키기 전')
raise Exception
print('예외 발생시킨 후')
except:
print('예외 발생!!!')
결과값 >>
예외 발생시키기 전
예외 발생!!!
다음 예제로 게임을 예로 들겠습니다.
아이템을 담을 수 있는 인벤토리가 있습니다.
이 인벤토리의 용량은 4개 입니다.
아이템을 획득하다가, 꽉찼을때 '인벤토리가 꽉 찼습니다.' 라는 말을 출력하는 프로그램을 살펴보겠습니다.
list=[]
try:
while True:
print('아이템개수 :', len(list))
print('인벤토리 :', list)
# 인벤토리가 꽉찼을때, 예외를 일부러 발생시킴
if len(list) >= 4:
raise Exception('인벤토리 부족')
item = 'item' + str(len(list))
list.append(item)
except Exception as e:
print('인벤토리가 꽉 찼습니다.')
print(e)
결과값 >>
아이템개수 : 0
인벤토리 : []
아이템개수 : 1
인벤토리 : ['item0']
아이템개수 : 2
인벤토리 : ['item0', 'item1']
아이템개수 : 3
인벤토리 : ['item0', 'item1', 'item2']
아이템개수 : 4
인벤토리 : ['item0', 'item1', 'item2', 'item3']
인벤토리가 꽉 찼습니다.
인벤토리 부족
무한루프를 돌수 있도록 while True : ... 를 이용했습니다.
raise가 없다면, 계속해서 item을 list에 append 해야겠지만 조건문의 raise에 의해 예외가 발생하고
except문으로 넘어가는것을 확인 할 수 있습니다.
또한 raise Exception('에러 내용')을 통해
에러의 내용을 설정할 수 있고, except문에서 print()를 통해 에러 내용을 확인 할 수 있습니다.
다음글...
2018/01/11 - [Language/Python] - Python :: 모듈(module)과 패키지(package)에 대해 알아보자 #14 |
'Language > Python' 카테고리의 다른 글
Python :: from import 에 대해 알아보자 #15 (0) | 2018.01.11 |
---|---|
Python :: 모듈(module)과 패키지(package)에 대해 알아보자 #14 (0) | 2018.01.11 |
Python :: 예외 처리에 대해 알아보자 (try ~ except) #12 (0) | 2018.01.10 |
Python :: 파이썬 설치하기 (0) | 2018.01.09 |
Python :: 파일 입출력(file IO), 읽고쓰기에 대해서 알아보자#11 (0) | 2018.01.06 |
최근댓글