Program/Python

Python 예외처리

하랑파파♡ 2020. 9. 9. 10:50
728x90
반응형
SMALL

try, except문

try:
    ...
except [발생 오류[as 오류 메시지 변수]]:
    ...

ex1)
try:
    ...
except:
    ...

ex2)
try:
    ...
except 발생 오류:
    ...

ex3)
try:
    ...
except 발생 오류 as 오류 메시지 변수:
    ...

try .. finally

finally절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행

f = open('foo.txt', 'w')
try:
    # 무언가를 수행한다.
finally:
    f.close()

여러개의 오류처리하기

try:
    ...
except 발생 오류1:
   ... 
except 발생 오류2:
   ...

ex1)
try:
    a = [1,2]
    print(a[3])
    4/0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except IndexError:
    print("인덱싱 할 수 없습니다.")

ex2)
try:
    a = [1,2]
    print(a[3])
    4/0
except ZeroDivisionError as e:
    print(e)
except IndexError as e:
    print(e)

오류 회피하기

try:
    f = open("나없는파일", 'r')
except FileNotFoundError:
    pass

오류 일부러 발생시키기

raise 명령어를 사용해 오류를 강제로 발생

class Bird:
    def fly(self):
        raise NotImplementedError // 꼭 작성해야 하는 부분이 구현되지 않았을 경우 일부러 오류를 일으키기 위해 사용

예외 만들기

class MyError(Exception):
    def say_nick(nick):
        if nick == '바보':
            raise MyError()
        print(nick)
    def __str__(self):
        return "허용되지 않는 별명입니다."

/* 실행 */
try:
    say_nick("천사")
    say_nick("바보")
except MyError as e:
    print(e)

참고 : https://wikidocs.net/30

728x90
반응형
LIST

'Program > Python' 카테고리의 다른 글

Python 라이브러리  (0) 2020.09.09
Python 내장함수  (0) 2020.09.09
Python 패키지  (0) 2020.09.09
Python 모듈  (0) 2020.09.08
Python 클래스  (0) 2020.09.08