ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 예외 처리 (Exception Handling) 🐍🛠️⚠️
    프로그래밍/Python 2025. 3. 11. 23:05
    반응형

    Python에서는 프로그램 실행 중 발생할 수 있는 예외(Exception)를 처리하여 오류를 방지할 수 있습니다. 이번 포스팅에서는 try-except 구문을 활용한 예외 처리 방법을 쉽게 설명하겠습니다! 🚀


    1. 예외란 무엇인가?

    프로그램을 실행하다 보면 오류(Error)가 발생할 수 있습니다. Python에서는 이런 오류를 예외(Exception)라고 하며, 예외를 처리하지 않으면 프로그램이 중단됩니다.

    📌 예외 발생 예시

    print(10 / 0)  # ZeroDivisionError 발생
    

    ✅ 0으로 나누면 ZeroDivisionError가 발생하여 프로그램이 중단됩니다.


    2. try-except 구문 (예외 처리 기본)

    예외가 발생해도 프로그램이 중단되지 않도록 try-except 구문을 사용합니다.

    📌 기본 예외 처리 구조

    try:
        실행할 코드
    except 예외종류:
        예외 발생 시 실행할 코드
    

    📌 예제: ZeroDivisionError 처리

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

    ✅ 예외가 발생해도 프로그램이 멈추지 않고 "0으로 나눌 수 없습니다!"가 출력됩니다.


    3. 여러 개의 예외 처리

    하나의 try 블록에서 여러 개의 예외를 처리할 수 있습니다.

    📌 여러 예외 처리 예제

    try:
        num = int(input("숫자를 입력하세요: "))
        print(10 / num)
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다!")
    except ValueError:
        print("숫자가 아닌 값을 입력했습니다!")
    

    ✅ 입력값이 0이면 ZeroDivisionError, 숫자가 아니면 ValueError를 처리합니다.


    4. 예외 메시지 확인 (as e)

    예외 메시지를 출력하고 싶다면 as e를 사용할 수 있습니다.

    📌 예외 메시지 출력하기

    try:
        print(10 / 0)
    except ZeroDivisionError as e:
        print(f"오류 발생: {e}")
    

    ✅ ZeroDivisionError: division by zero와 같은 메시지가 출력됩니다.


    5. finally 블록 - 항상 실행되는 코드

    finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 코드를 정의할 때 사용합니다.

    📌 finally 블록 예제

    try:
        file = open("test.txt", "r")
        data = file.read()
    except FileNotFoundError:
        print("파일을 찾을 수 없습니다!")
    finally:
        print("프로그램을 종료합니다.")
    

    ✅ 파일이 없어도 finally 블록은 실행됩니다.


    6. raise 문 - 강제로 예외 발생시키기

    특정 조건에서 강제로 예외를 발생시키고 싶다면 raise를 사용할 수 있습니다.

    📌 예제: 강제 예외 발생

    def check_age(age):
        if age < 0:
            raise ValueError("나이는 0 이상이어야 합니다.")
        print(f"입력한 나이: {age}")
    
    try:
        check_age(-5)
    except ValueError as e:
        print(f"예외 발생: {e}")
    

    ✅ raise를 이용해 음수 나이가 입력되면 ValueError를 발생시킵니다.


    7. 연습문제: 직접 실습해보기! 🎯

    # 1. 숫자를 입력받아 나누기 연산을 수행하는 프로그램을 작성하세요.
    # 0을 입력하면 "0으로 나눌 수 없습니다!" 메시지를 출력하도록 만드세요.
    try:
        num = int(input("나눌 숫자를 입력하세요: "))
        result = 10 / num
        print("결과:", result)
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다!")
    except ValueError:
        print("올바른 숫자를 입력하세요!")
    
    # 2. 파일을 읽는 코드에서, 파일이 없을 경우 "파일이 없습니다!" 메시지를 출력하도록 만드세요.
    try:
        with open("data.txt", "r") as file:
            content = file.read()
            print(content)
    except FileNotFoundError:
        print("파일이 없습니다!")
    

    마무리 🎯

    오늘은 Python의 예외 처리(Exception Handling)에 대해 배웠습니다! 🏆

    • try-except를 활용하여 예외를 처리하는 방법
    • 여러 개의 예외를 처리하는 방법
    • finally 블록을 활용하여 항상 실행되는 코드 작성
    • raise를 이용한 예외 강제 발생

    💡 다음 포스팅에서는 '모듈과 패키지'를 다룰 예정입니다! 🚀

    ✍️ 질문이나 궁금한 점이 있다면 댓글로 남겨주세요! 😊

Designed by Tistory.