728x90
반응형
SMALL
예외처리
프로그램을 만들다 보면 수없이 많은 오류를 만나게 된다. 이를 위해 python은 try, except를 사용해서 예외적으로 오류를 처리할 수 있게 해준다.
오류 예외 처리 기법
1. try, except만 쓰는 방법
try:
...
except [발생 오류[as 오류 메시지 변수]]:
...
2. 발생 오류만 포함한 except문
try:
...
except 발생 오류:
...
3. 발생 오류와 오류 메시지 변수까지 포함한 except문
try:
...
except 발생 오류 as 오류 메시지 변수:
...
try: # 1을 0으로 나누려고 하면 ZeroDivisionError가 발생
1 / 0
except ZeroDivisionError as e:
print(e)
try .. finally
try문에는 finally절을 사용할 수 있다. finally절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행된다. 보통 finally절은 사용한 리소스를 close해야 할 때에 많이 사용한다.
f = open('xxx.txt', 'a')
try:
# 무언가를 수행.
finally:
f.close()
여러 개의 오류 처리
try:
...
except 발생 오류1:
...
except 발생 오류2:
...
try:
a = [1,2]
print(a[3])
1/0
except ZeroDivisionError:
print("0으로 나눌 수 없다.")
except IndexError:
print("인덱싱 할 수 없다.")
오류 회피하기
try: # try문 안에서 FileNotFoundError가 발생할 경우에 pass를 사용하여 오류를 회피
f = open("없는 파일", 'r')
except FileNotFoundError:
pass
오류 발생시키기
class Game:
def play(self):
raise NotImplementedError
class Soccer(Game):
pass
soccer = Soccer()
soccer.play()
--> raise NotImplementedError
--> NotImplementedError
class Soccer(Game):
def play(self):
print("very well")
soccer = Soccer()
soccer.play()
--> very well
예외 만들기
class MyError(Exception):
pass
def say_nick(nick):
if nick == '천재':
raise MyError()
print(nick)
say_nick("천사")
say_nick("천재")
--> raise MyError()
try:
say_nick("천사")
say_nick("천재")
except MyError:
print("허용되지 않는 별명입니다.")
say_nick("천사")
say_nick("천재")
--> 천사
--> 허용되지 않는 별명입니다.
728x90
반응형
LIST
'Programming > Python' 카테고리의 다른 글
12. XML (Extensible Markup Language) (0) | 2021.12.15 |
---|---|
11. 파일 입출력 (0) | 2021.12.15 |
09. 모듈 (Module) (0) | 2021.12.08 |
08. 클래스 상속 (Class inheritance) (0) | 2021.12.08 |
07. 클래스 (Class) (0) | 2021.12.08 |