본문 바로가기
파이썬

[Python] try, except 예외 처리 문법과 실전 예제

by JJONY 2025. 4. 4.
반응형

Python을 사용하다 보면 프로그램 실행 중 예상치 못한 오류가 발생할 수 있습니다. 이런 오류를 그대로 두면 프로그램이 중단되지만, try, except 문법을 사용하면 예외 상황을 처리하여 프로그램이 계속 실행되도록 만들 수 있습니다. 이번 포스팅에서는 Python의 try, except 구문의 기본 문법부터 다양한 예외 처리 예제까지 초보자도 쉽게 따라 할 수 있도록 정리해보았습니다.

try, except 예외 처리 문법과 실전 예제


1. try, except 기본 문법

1. 구조

try:
    실행할 코드
except 예외타입:
    예외 발생 시 실행할 코드

2. 예제: 0으로 나누기

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

실행 결과 (터미널)

0으로 나눌 수 없습니다.

 


2. 다양한 예외 처리 예제

1. ValueError 처리

try:
    num = int(input("숫자를 입력하세요: "))
except ValueError:
    print("숫자가 아닌 값을 입력했습니다.")

2. IndexError 처리

my_list = [1, 2, 3]
try:
    print(my_list[5])
except IndexError:
    print("리스트 범위를 벗어났습니다.")

3. KeyError 처리

my_dict = {"name": "Alice"}
try:
    print(my_dict["age"])
except KeyError:
    print("해당 키가 존재하지 않습니다.")

3. 다중 예외 처리와 finally

1. 여러 예외 처리

try:
    x = int("a")
    y = 10 / 0
except ValueError:
    print("형 변환 오류")
except ZeroDivisionError:
    print("0으로 나누기 오류")

2. 여러 예외를 한 번에 처리

try:
    x = int("a")
except (ValueError, TypeError):
    print("입력값 오류")

3. finally 문

  • 예외 발생 여부와 관계없이 항상 실행됨
try:
    print("작업 시작")
    1 / 0
except ZeroDivisionError:
    print("예외 발생")
finally:
    print("작업 종료")

실행 결과

작업 시작
예외 발생
작업 종료

 


4. 사용자 정의 예외와 raise

1. raise 키워드 사용

def check_age(age):
    if age < 0:
        raise ValueError("나이는 0 이상이어야 합니다.")
    return age

try:
    check_age(-1)
except ValueError as e:
    print("오류 발생:", e)

2. 사용자 정의 예외 클래스

class CustomError(Exception):
    pass

try:
    raise CustomError("사용자 정의 오류 발생")
except CustomError as e:
    print(e)

5. 추가 팁 및 참고 사항

  • 예외 이름 없이 except:만 사용할 경우 모든 예외를 처리하지만, 구체적인 예외를 명시하는 것이 좋습니다.
  • as 키워드로 예외 객체를 받아서 메시지를 출력하거나 로그 처리에 활용할 수 있습니다.
  • 예외 처리는 프로그램의 안정성과 사용자 경험 향상에 중요합니다.

6. 요약 및 마무리

이번 포스팅에서는 Python의 예외 처리 문법인 try, except, finally, raise 구문을 살펴보았습니다. 기본적인 문법부터 다중 예외 처리, 사용자 정의 예외까지 다양한 상황에 적용할 수 있으며, 프로그램의 예외 상황을 유연하게 대응할 수 있게 도와줍니다. 예외를 무시하지 않고 제대로 처리하는 습관은 견고하고 신뢰할 수 있는 코드를 작성하는 데 매우 중요합니다.


7. 관련 글 링크

  • 관련 글: Python에서 ValueError 오류가 발생하는 원인과 해결 방법
반응형

댓글