파이썬 try-except로 오류 처리하기: 프로그램이 멈추지 않게 만드는 방법
파이썬으로 프로그램을 만들다 보면 오류 때문에 프로그램이 갑자기 멈추는 일이 자주 생깁니다. 이 글에서는 오류가 나도 프로그램이 멈추지 않게 만드는 try-except를 맥 터미널에서 직접 실행해 보며 정리했습니다.
오류가 나면 프로그램은 어떻게 될까
먼저 일부러 오류를 내 보았습니다. 숫자로 바꿀 수 없는 글자인 “스무 살”을 int()에 넣고 실행했습니다.
int("스무 살")
실행하자 아래처럼 ValueError가 나왔습니다.

마지막 줄의 내용은 “10진수 정수로 바꿀 수 없는 글자 ‘스무 살'”이라는 뜻입니다. 이렇게 오류가 나면 그 줄에서 프로그램이 멈추고, 그 아래에 있는 코드는 실행되지 않습니다.
try-except의 기본 모양
try-except는 “일단 해 보고, 오류가 나면 이렇게 하자”라고 미리 정해 두는 문법입니다. try 아래에는 오류가 날 수 있는 코드를 쓰고, except 아래에는 오류가 났을 때 실행할 코드를 씁니다. 두 줄 모두 끝에 콜론(:)을 붙이고, 그 아래 줄은 들여쓰기를 해야 합니다.
직접 실행해 보기
맥에서 trycatch.py 파일을 만들고 아래 코드를 넣어 실행했습니다.
try:
age = int("스무 살")
print(age)
except ValueError:
print("숫자만 입력해 주세요")
print("프로그램이 계속 실행됩니다")
python3 trycatch.py를 실행하자 화면에 아래처럼 두 줄이 나왔습니다.

첫째 줄의 “숫자만 입력해 주세요”는 except 아래 코드가 실행된 결과입니다. 둘째 줄의 “프로그램이 계속 실행됩니다”는 try-except 바깥에 있는 코드입니다. 앞에서 오류가 났는데도 프로그램이 멈추지 않고 끝까지 실행된 것을 확인할 수 있습니다.
참고로 try 안의 print(age)는 실행되지 않았습니다. int(“스무 살”)에서 오류가 난 순간 try 안의 나머지 코드는 건너뛰고 바로 except로 넘어가기 때문입니다.
오류 종류를 정해서 받는 이유
except 뒤에 쓴 ValueError는 오류의 종류입니다. 위 예제에서는 숫자로 바꿀 수 없는 값을 넣었을 때 나는 오류를 정해서 받았습니다. 예를 들어 숫자를 0으로 나누면 ZeroDivisionError처럼 다른 종류의 오류가 나는데, 그 오류는 ValueError만 받는 except로는 잡히지 않습니다.
이렇게 종류를 정해서 받으면 어떤 상황에서 어떤 말을 보여 줄지 정확하게 정할 수 있습니다.
처음 쓸 때 자주 하는 실수
첫 번째는 들여쓰기를 빼먹는 것입니다. try와 except 아래 줄은 반드시 안쪽으로 들여써야 합니다.
두 번째는 콜론(:)을 빼먹는 것입니다. try와 except 줄 끝에 콜론이 없으면 문법 오류가 납니다.
세 번째는 except 없이 try만 쓰는 것입니다. try는 except와 짝을 이루어야 합니다.
네 번째는 모든 오류를 뭉뚱그려 받는 것입니다. 오류 종류를 쓰지 않고




댓글 0
첫 댓글을 남겨보세요.