파이썬 오류 예외 처리
try:
실행할 코드
except [발생 오류 [as 오류 메시지 변수]]:
오류 발생시 동작 코드
try:
4/0
except ZeroDivisionError as e:
print(e)
division by zero
try.. else
try:
실행할 코드
except [발생 오류 [as 오류 메시지 변수]]:
오류 발생시 동작 코드
else:
오류 발생 안할 시 동작 코드
try:
f = open('foo.txt','r')
except FileNotFoundError as e:
print(str(e))
else:
data = f.read()
f.close()
try.. finally
finally는 try 수행 중에 예외 발생 여부 상관 없이 항상 수행된다.
f = open('foo.txt','w')
try:
실행 코드
finally:
f.close() #예외 발생 여부 상관 없이 수행되어야 하는 명령 주로 사용
오류 회피
특정 오류 발생 시 통과해야하는 경우
try:
f = open("없는 파일", 'r')
except FileNotFoundError:
pass
오류 일부러 발생시키기
raise
명령어를 이용해서 강제 오류 발생이 가능하다.
class Bird:
def fly(self):
raise NotImplementedError
class Eagel(Bird):
def fly(self):
pass
eagle = Eagel()
eagle.fly()
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
<ipython-input-5-5be87b522879> in <module>
3
4 eagle = Eagel()
----> 5 eagle.fly()
<ipython-input-4-e8d1e4453b08> in fly(self)
1 class Bird:
2 def fly(self):
----> 3 raise NotImplementedError
NotImplementedError:
class Eagel(Bird):
def fly(self):
print("very fast") # Bird의 NotImplementedError를 발생시키지 않으려면 반드시 상속하는 클래스에서 메소드가 구현되어야한다.
eagle = Eagel()
eagle.fly()
very fast
'Programming > Python' 카테고리의 다른 글
Python 객체 파일에 저장하기 (0) | 2020.01.01 |
---|---|
Python 내장 함수 (0) | 2019.12.26 |
Python 클래스 상속 (0) | 2019.12.26 |
Python 클래스 (0) | 2019.12.26 |
Python 파일 입출력 (0) | 2019.12.26 |