(예외 처리)
- 파이썬에서 예외(Exception)는 문법적으로는 문제가 없는 코드를 실행하는 중에 발생하는 오류를 말함.
- try ~ except로 예외 처리하기
try :
#문제가 없을 경우 실행할 코드
except:
#문제가 생겼을 때 실행할 코드
○ 복수 개의 except절 사용 : 프로그램이 하는 일이 많아지고 코드의 양이 늘어나면 처리해야 할 예외도 늘어남에 따라 예외의 종류에 따른 예외 처리 구현하기
try:
#문제가 없을 경우 실행할 코드
except 예외형식1 :
#문제가 생겼을 때 실행할 코드
excpet 예외형식2 :
#문제가 생겼을 때 실행할 코드
추가적으로, 예외형식의 인스턴스를 얻어 낼 수 있는 방법
try:
#문제가 없을 경우 실행할 코드
except 예외형식1 as err:
#문제가 생겼을 때 실행할 코드
except 예외형식2 as err:
#문제가 생겼을 때 실행할 코드
○ try절을 무사히 실행하면 만날 수 있는 else : try 절에 있는 코드블록 실행 중에 아무런 예외가 일어나지 않으면 실행됨.
※ if 문에 사용하는 else와 전혀 다르다. = 'except절에 대한 else'
try :
#실행할 블록 코드
except:
#예외 처리 코드블록
else:
#except절을 만나지 않았을 경우 실행하는 코드 블록
○ 어떤 일이 있어도 반드시 실행되는 finally :
예외가 발생했든 아무일이 없든 간에 '무조건' 실행됨.
그래서, finally는 파일이나 통신 채널과 같은 컴퓨터 자원을 정리할 때 사용.
cf) else와 finally가 서로 배타적인 것은 아니라 함께 사용가능.
try:
# 코드블록
except:
# 코드블록
else:
# 코드블록
finally:
# 코드블록
- Exception 클래스
파이썬은 오류 상황에 대한 정보를 담는 예외 형식을 다양하게 제공함.
그 예외 형식들의 맨 위에는 BaseException 클래스가 있음. 즉, 파이썬의 모든 예외 형식은 BaseException 클래스로부터 상속받는다는 의미.
하지만, 실질적으로 시조로 간주되는 것은 그 밑에 있는 Exception 클래스임.
○ Exception 형식을 다른 예외 형식에 앞서 처리한다.
- 의식적으로 예외 일으키기
작성한 코드를 파이썬의 함수나 연산자처럼 예외를 일으킬 수 있음 = 예외 객체를 매개변수로 넘겨 raise문을 실행하면 됨.
cf)except절이 받아 한 번 처리한 예외를 그대로 상위 호출자에게 던지고 싶을 떄에는 매개변수 없이 except절에서 raise문을 실행하면 됨.
try:
# 예외 발생
except:
raise
- 예외 형식 만들기
예외 형식을 직접 만들어서 사용하기 = Exception 클래스를 상속하는 클래스를 정의하기만 하면 됨.
예시)
class MyException(Exception):
pass
'스마트웹앱콘텐츠전문가 > 파이썬(플라스크, 데이터 처리)' 카테고리의 다른 글
[트위터 활용] (0) | 2018.01.24 |
---|---|
[파일처리] (0) | 2018.01.23 |
[모듈,패키지 및 클래스] (0) | 2018.01.23 |
[흐름제어]분기문,반복문,제어문... (0) | 2018.01.22 |
[함수] (0) | 2018.01.22 |