프로그램을 만들다 보면 수없이 많은 오류를 만나게 된다.

오류를 무시하고 싶을 때도 있고 별도로 처리하고 싶을 때도 있다.

파이썬은 try,except를 이용해 오류를 처리 할 수 있게 해준다.

 

★오류는 어떤 때 발생할까?

 

오류를 처리하는 방법을 알기 전에 어떤 상황에서 오류가 발생하는지 알아보자.

 

디렉토리 안에 없는 파일을 열려고 시도 했을 때 발생하는 오류이다.

 

 

FileNotFoundError 파일 오류 메시지

 

 

0으로 나누려니까 ZeroDivisionError라는 이름의 오류 발생

 

 

a리스트에서 얻을 수 없는 값이다. 따라서 indexError 발생

 

★오류 예외 처리 기법

 

try, except문

 

try:

...

except [발생 오류[as 오류 메시지 변수]]:

...

 

 

try .. else

 

try문은 else절을 지원한다. else절은 예외가 발생하지 않은 경우에 실행되며 반드시 except절 바로 다음에 위치

해야 한다.

 

 

foo.txt라는 파일이 없으면 except절이 수행되고

파일이 있으면 파일내용 출력하기

 

try .. finally

 

보통 finally절은 사용한 리소스 close해야 할 경우에 많이 사용된다.

 

★여러개의 오류처리하기

 

try문 내에서 여러개의 오류를 처리하기 위해서는 다음과 같은 구문을 이용한다.

 

 

인덱싱 오류가 먼저 발생했으므로 밑에 오류들은 출력되지 않는다.

 

 

2개 이상의 오류를 동시에 처리하기 위해선 괄호를 묶어 사용

 

★오류 회피하기

 

프로그래밍을 하다가 특정 오류가 발생하면 그냥 통과 시켜야 할 때가 있을수 있다.

 

★오류 일부러 발생시키기

 

프로그래밍을 하다보면 종종 오류를 발생시켜야 할 경우도 생긴다.

raise라는 명령어를 이용해 오류를 강제로 발생시킨다.

 

 

 

NotlmplementedError는 파이썬 내장 오류로 일부러 발생시키고자 사용한다.

orange클래스는 fruit클래스를 상속받는다.

그런데 orange클래스에서 apple함수를 구현하지 않아 fruit클래스의 apple함수가 호출된다.

그리고 raise문에 의해 에러메시지가 나온다.

 

상속받는 클래스에서 함수를 재구현하는 것을 메서드 오버라이딩이라 부른다.

 

 

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

Python-외장함수  (0) 2017.06.16
Python-내장 함수  (0) 2017.06.12
Python-모듈  (0) 2017.06.10
Python-Class  (0) 2017.06.08
Python-파일 읽고쓰기  (0) 2017.06.06

+ Recent posts