프로그래밍 과정에선 수많은 에러를 마주칩니다. 숫자를 0으로 나누거나, 문자열과 정수를 더하거나, Iterable 자료형의 인덱스에 잘못 접근하는 경우 등이 있습니다. Java의 try-catch-finally처럼 Python도 try-except-else-finally 문법을 통해 에러 처리 구문을 만들 수 있습니다.

try-except

다음은 에러 처리를 위한 try-except문의 기본 구조입니다.

try 내부에서 에러의 종류에 상관없이 에러가 발생하면 except 블럭을 수행합니다. except 블럭에는 처리하고자 하는 에러를 지정할 수 있으며, Iterable 자료형의 인덱스에 잘못 접근하는 경우 발생하는 IndexError를 처리해 보도록 하겠습니다.

에러가 발생했을 경우 except에서 해당 에러에 대한 객체를 생성할 수 있습니다. as라는 키워드를 사용합니다.

IndexError는 __str__이라는 매직 메소드를 구현하고 있기 때문에, print에 그대로 넣으면 에러 메시지를 출력할 수 있습니다.

Python에서 기본적으로 다루는 에러는 IndexError, ZeroDivisionError, TypeError 등 매우 많습니다. Python 공식 레퍼런스에서 확인해볼 수 있습니다.

try-except-else-finally

완전한 에러 처리 구문은 try-except-else-finally입니다. except는 try에서 에러가 발생했을 경우 실행되고, else는 에러가 발생하지 않았을 경우 실행되며, finally는 에러 발생 여부에 상관 없이 실행되는 블럭입니다.


'Python 계열 > Python 레거시 글' 카테고리의 다른 글

[Python] 모듈  (0) 2018.07.06
[Python] 사용자 정의 에러  (0) 2018.07.05
[Python] 연산자 오버로딩  (0) 2018.07.02
[Python] 언더스코어와 magic method  (0) 2018.07.01
[Python] 클래스의 상속  (0) 2018.06.30

+ Recent posts