구문 오류와 예외

오류의 종류

프로그램에서 오류(error)는 크게 두 가지 종류가 있습니다.

오류를 나누는 기준에 따라서 *로직 에러(logic error)*도 있습니다.

구문 오류(syntax error)

구문 오류는 괄호의 열고 닫음이 맞지 않거나, 들여쓰기를 바르게 못했거나 등의 문제로 프로그램이 실행되기 전에 발생하는 오류입니다.

Untitled

위 코드 셀에 있는 print('여기에는 어떤 오류가 있다는 건가?) 문장은 실행시키기도 전에 (구글 코랩에서는) 빨간 줄이 그어집니다. 문자열 표현에서 닫는 따옴표가 누락되었네요.

SyntaxError라는 말에 주목하십시요. 파이썬 문법에 맞지 않는 표현이다라는 뜻입니다. "문법이 틀렸어~"라고 말하고 있습니다.

예외 또는 런타임 오류

예외 또는 런타임 오류는 실행 중에 발생하는 오류를 의미합니다.

Untitled

위 코드를 실행하면 일단 프로그램이 시작되었습니다라고 출력(print)합니다. 여기까지는 이상이 없다는 것입니다. 에러가 없다는 것입니다. 그런데 lst[0]에서 실행 중 에러가 발생했습니다. 러타임 에러입니다. 프로그램이 실행(run, 런) 중에 발생한 에러를 런타임 오류(error) 또는 예외(exception)라고합니다.

예외가 발생한 원은은 "NameError: name 'lst' is not defined"입니다. lst라는 것이 정의되지 않았는데 사용하려고 했기 때문입니다.