신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

 

 

 

이전글...

 

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

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기