스마트웹앱콘텐츠전문가/파이썬(플라스크, 데이터 처리)

[예외처리]

9D4U 2018. 1. 23. 14:29
728x90
반응형

(예외 처리)

- 파이썬에서 예외(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



728x90

'스마트웹앱콘텐츠전문가 > 파이썬(플라스크, 데이터 처리)' 카테고리의 다른 글

[트위터 활용]  (0) 2018.01.24
[파일처리]  (0) 2018.01.23
[모듈,패키지 및 클래스]  (0) 2018.01.23
[흐름제어]분기문,반복문,제어문...  (0) 2018.01.22
[함수]  (0) 2018.01.22