프로그래밍 과정에선 수많은 에러를 마주칩니다. 숫자를 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 |