Python 문법

예외처리

1minair 2021. 7. 14. 15:52
728x90

try:

    예외가 발생할 가능성이 있는 코드

except:

    예외가 발생했을 때 실행할 코드

else:

    예외가 발생하지 않았을 때 실행할 코드

finally:

    무조건 실행할 코드

 

예외 처리 구문 규칙

  • try 구문은 단독으로 사용할 수 없으며, 반드시 except 구문 또는 finally 구문과 함께 사용해야 한다.
  • else 구문은 반드시 except 구문 뒤에 사용해야 한다.

가능한 예)

  • try + except 구문
  • try + except + else 구문
  • try + except + finally 구문
  • try + except + else + finally 구문
  • try + finally 구문

※ finally 구문이 반복문 또는 함수 내부에 있을 때

- finally 구문은 무조건 실행된다.

def test():
    print("test() 함수 실행")
    try:
        print("try 구문 실행")
        return
        print("try 구문의 return 키워드 뒤")
    except:
        print("except 구문 실행")
    else:
        print("else 구문 실행")
    finally:
        print("finally 구문 실행")

test()


'''
test() 함수 실행
try 구문 실행
finally 구문 실행
'''

 

while True:
    try:
        print("반복문 실행")
        break
    finally:
        print("finaaly 구문")

'''
반복문 실행
finaaly 구문
'''

 

(추가)


예외 객체 사용하기

try:

    예외가 발생할 가능성이 있는 구문

except 예외의 종류 as 예외 객체를 활용할 변수 이름:

    예외가 발생했을 때 실행할 구문

 

예외 구분하기

try:

    예외가 발생할 가능성이 있는 구문

except 예외의 종류A:

    예외A가 발생했을 대 실행할 구문

except 예외의 종류B:

    예외B가 발생했을 대 실행할 구문

except 예외의 종류C:

    예외C가 발생했을 대 실행할 구문

 

※ 모든 예외를 잡기 위해서 마지막 except에는 Exception(모든 예외의 부모)을 사용하자!

list_number = list(range(0, 10 + 1))

try:
    number_input = int(input("정수 입력 >"))
    print("{}번재 요소: {}".format(number_input,list_number[number_input]))
    예외.발생해주세요() #예외 발생
except ValueError as e:
    print("정수 입력해 주세요")
    print(type(e), e)
except IndexError as e:
    print("리스트의 인덱스를 벗어남")
    print(type(e), e)
#ValueError와 IndexError가 아닌 예외가 발생했을 때 실행된다.
except Exception as e:
    print("미리 파악하지 못한 예외 발생")
    print(type(e), e)

 


raise 구문

> 아직 구현되지 않은 부분에서 강제로 예외를 발생시킴

사용법 : raise 예외 객체

'Python 문법' 카테고리의 다른 글

map()함수와 filter()함수  (0) 2021.07.13
리스트 list  (0) 2021.05.22
조건문  (0) 2021.05.20
문자열이 가진 함수  (0) 2021.05.19
변수와 입력  (0) 2021.05.19