[10편] 예외 처리(try-except) - 에러에 당황하지 않는 법


코딩을 하다 보면 '에러(Error)'라는 붉은색 문구를 마주하게 됩니다. 초보자분들은 여기서 심장이 덜컥 내려앉곤 하죠. 하지만 실제 현업 개발자들은 에러를 두려워하지 않습니다. '에러가 발생하면 이렇게 처리해라'라는 가이드라인을 코드에 심어두기 때문입니다. 이것이 바로 예외 처리입니다.

1. try-except: 에러를 방어하는 방패

가장 기본 구조는 tryexcept입니다. try 구문 안에는 '실행해보고 싶은 코드'를 넣고, except 구문에는 '에러가 발생했을 때 할 행동'을 적습니다.

예시:

try:
    file = open("data.txt", "r")
    content = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다. 경로를 확인하세요.")

이렇게 코드를 짜두면, 파일이 없어서 프로그램이 비정상적으로 종료되는 대신, 사용자에게 친절한 안내 메시지를 출력하고 다음 작업을 이어갈 수 있습니다.

2. 에러의 종류를 파악하기

파이썬에는 수많은 에러가 있습니다.

  • ZeroDivisionError: 숫자를 0으로 나눌 때

  • TypeError: 자료형이 맞지 않을 때

  • IndexError: 리스트의 범위를 벗어날 때

except 뒤에 에러 이름을 적으면 특정 에러에 대해서만 대응할 수 있습니다. 위 예시처럼 FileNotFoundError를 명시하면 파일이 없을 때만 안내하고, 다른 에러가 발생하면 원래대로 파이썬이 에러를 띄워주게 설정할 수 있어 디버깅에 매우 유리합니다.

3. else와 finally: 완벽한 마무리

예외 처리에는 더 꼼꼼한 마무리를 위한 두 가지 장치가 더 있습니다.

  • else: try 구문에서 에러가 발생하지 않았을 때만 실행됩니다.

  • finally: 에러 발생 여부와 상관없이 무조건 마지막에 실행됩니다. (파일 닫기 등을 할 때 아주 유용합니다.)

예시:

try:
    # 데이터 처리 로직
except:
    # 에러 처리
finally:
    # 파일 닫기 등 필수 작업

finally를 활용하면 프로그램이 강제 종료되어도 열려있던 파일이나 데이터베이스 연결을 안전하게 닫을 수 있습니다.

4. 실전 팁: 무분별한 except 사용 금지

초보자들이 가장 흔히 하는 실수가 모든 에러를 except: 하나로 퉁쳐버리는 것입니다. 이렇게 하면 정작 중요한 시스템 에러가 발생해도 아무런 표시가 나지 않아 문제를 찾기가 매우 어려워집니다. 예외 처리는 반드시 '어떤 에러가 발생할지 예상되는 부분'에만 정확하게 사용하는 것이 정석입니다.

[핵심 요약]

  • try-except 구문을 사용하면 에러 발생 시 프로그램이 멈추지 않고 적절한 조치를 취할 수 있다.

  • 에러 이름을 명시하면 특정 상황에 맞는 정교한 대응이 가능하다.

  • finally 구문을 활용하면 파일 닫기와 같은 필수 작업을 에러 유무와 관계없이 확실히 수행할 수 있다.

👉 다음 편에서는 이제 이론을 마무리하고, 지금까지 배운 내용을 총동원하여 '엑셀 파일을 직접 읽고 필터링하는 실전 자동화'를 시작해 보겠습니다. 드디어 자동화다운 자동화를 구현하는 시간이 다가왔습니다.

오늘 배운 예외 처리를 활용하여, 여러분의 업무 중 "자주 에러가 발생해서 번거로웠던 상황"이 무엇인가요? "매일 내려받는 파일 이름이 날짜별로 바뀌어서 경로 에러가 난다"거나 하는 등의 구체적인 고민을 댓글로 알려주세요! 다음 실습 때 에러를 완벽하게 방어하는 코드를 보여드리겠습니다.

댓글 쓰기

0 댓글

신고하기

프로필

이 블로그 검색

이미지alt태그 입력