ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 예시로 배우는 파이썬 (예외처리)
    PYTHON(파이썬)/파이썬 기초 2024. 10. 17. 05:17
    728x90
    반응형

    #############################################################################

    # Python 기초 14 : 예외처리

    # eplus(www.eiot.co.kr)-나도코딩(YouTube):파이썬 코딩 무료 강의 (기본편) 참조

    #############################################################################

    try:

        print("나누기 전용 계산기입니다.")

        num1 = int(input("첫 번째 숫자를 입력하세요 : "))

        num2 = int(input("두 번째 숫자를 입력하세요 : "))

        print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))

    except ValueError:

         print("에러! 잘못된 값을 입력하였습니다.")

    except ZeroDivisionError as err:

        print(err)

    except Exception as err:

        print(err)

    finally:

        print("완료")

    ePython-22.py
    0.00MB

    Goover는?

    파이썬에서 예외 처리는 프로그램의 안정성을 높이고, 오류 발생 시 적절한 처리를 통해 프로그램이 예기치 않게 종료되는 일을 방지하는 중요한 기능입니다. 예외(Exception)란 프로그램 실행 중 발생할 수 있는 예외적인 상황을 의미하며, 이러한 상황에 적절히 대처하기 위해 예외 처리를 사용합니다.

    1. 예외란 무엇인가?

    예외는 프로그램이 예상치 못한 동작을 할 때 발생하는 사항입니다. 예를 들어, 파일을 열려고 할 때 해당 파일이 존재하지 않거나, 사용자 입력이 잘못된 경우가 이에 해당합니다. 이런 예외적인 상황이 발생하면, 파이썬은 자동적으로 오류를 발생시켜 프로그램의 흐름을 제어할 수 있는 방법을 제공하는데, 이 때 사용되는 것이 try…except 문입니다.

    2. 예외 처리 방법

    예외 처리는 try 블록과 except 블록을 사용하여 구현합니다. try 블록 안에는 예외가 발생할 가능성이 있는 코드가 들어가고, except 블록 안에는 이 예외를 처리하기 위한 코드가 포함됩니다.

    아래의 예제를 살펴보겠습니다:

    try:
        file = open('non_existent_file.txt', 'r')  # 존재하지 않는 파일 열기
        content = file.read()
    except FileNotFoundError as e:
        print("파일을 찾을 수 없습니다:", e)
    finally:
        print("이 메시지는 항상 출력됩니다.")
    

    이 코드에서 try 블록은 파일을 여는 시도를 하고, 만약 그 파일이 존재하지 않을 경우 FileNotFoundError 예외가 발생합니다. 이 예외는 except 블록에서 처리되어 "파일을 찾을 수 없습니다"라는 메시지를 출력합니다. 마지막으로 finally 블록은 예외 발생 여부와 상관없이 항상 실행되므로, 여기에서는 추가적인 정리 작업 등을 수행할 수 있습니다.

    3. 다양한 예외 처리

    파이썬에서는 특정 예외에 대해 다른 처리를 하고 싶을 때, 여러 개의 except 블록을 추가할 수 있습니다. 이는 다양한 예외 상황에 대해 세밀하게 대처할 수 있게 해줍니다.

    try:
        num = int(input("정수를 입력하세요: "))
    except ValueError:
        print("잘못된 입력입니다. 정수를 입력해야 합니다.")
    except KeyboardInterrupt:
        print("\n입력이 중단되었습니다.")
    else:
        print(f"입력한 정수는 {num}입니다.")
    

    위의 예제에서 사용자는 정수를 입력해야 하며, 만약 문자열 등을 입력하여 ValueError가 발생할 경우 "잘못된 입력입니다"라는 메시지가 출력됩니다. 입력 도중 사용자인터럽트가 발생하면 KeyboardInterrupt를 통해 예외를 처리할 수 있습니다.

    4. 예외를 자기 정의하기

    파이썬에서는 사용자가 정의한 예외를 만들 수도 있습니다. 이를 통해 특정한 상황에 대한 오류를 보다 명확하게 처리할 수 있습니다.

    class MyCustomError(Exception):
        pass
    
    def check_value(value):
        if value < 0:
            raise MyCustomError("값은 0보다 작을 수 없습니다.")
    
    try:
        check_value(-1)
    except MyCustomError as e:
        print(e)  # "값은 0보다 작을 수 없습니다." 출력
    

    이 예제에서는 MyCustomError라는 사용자 정의 예외를 생성하고, 특정 조건에서 이를 발생시킵니다. 이는 코드의 가독성을 높이고, 예외 처리의 명확성을 더합니다.

    5. 요약

    예외 처리는 프로그램의 안전성을 높이는 데 중요한 도구로, 예상하지 못한 상황에 적절하게 대응하기 위한 방법입니다. try와 except 블록을 사용하여 예외를 처리하며, 다양한 유형의 예외에 대해 다른 처리를 할 수 있습니다. 또한 사용자 정의 예외를 통해 더욱 세밀한 오류 처리가 가능합니다.

    728x90
Designed by Tistory.