YoungSoo

Python - 예외처리 본문

BE/Python

Python - 예외처리

YoungSooSoo 2022. 12. 23. 12:20

이번에는 예외처리에 대해 공부하려고 한다.

예외처리는 프로그램을 만들다보면 많은 오류가 발생하는데 오류로 인해 프로그램이 잘못 작동하는 것을 막기 위해 해준다.

예외처리

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

// 0으로 값을 못 나눔.
try:
    4 / 0
except ZeroDivisionError as e:
    print(e)
>> division by zero
  • try .. finally
f = open('foo.txt', 'w')
try:
    # 무언가를 수행한다.
finally:
    f.close()
  • try문에 else 절 사용하기
try:
    ...
except [발생 오류[as 오류 메시지 변수]]:
    ...
else:  # 오류가 없을 경우에만 수행된다.
    ...
  • 오류 회피하기
try:
    f = open("나없는파일", 'r')
except FileNotFoundError:
    pass
  • 오류 일부러 발생시키기
class Bird:
    def fly(self):
        raise NotImplementedError

//

class Eagle(Bird):
    pass

eagle = Eagle()
eagle.fly()
  • Eagle는 Bird 클래스를 상속 받는다. 그런데 Eagle 클래스에서 fly 함수를 구현하지 않았기에 Bird 클래스의 함수가 호출된다. 그리고 raise 문에 의해 에러가 발생한다.
  • class Bird: def fly(self): raise NotImplementedError // class Eagle(Bird): pass eagle = Eagle() eagle.fly()
  • 예외 만들기
class MyError(Exception):
    def __str__(self):
        return "허용되지 않는 별명입니다."

def say_nick(nick):
    if nick == '바보':
        raise MyError()
    print(nick)

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

Python - 주요 내장 함수 및 라이브러리  (0) 2022.12.28
Python - 패키지  (0) 2022.12.21
Python - 모듈  (0) 2022.12.19
Python - 클래스  (0) 2022.12.17
Python - 파일 읽고 쓰기  (0) 2022.12.16