[개발] 파이썬

4.3. 파이썬 예외 처리

브랜든정 2024. 12. 27. 10:38
반응형

파이썬은 강력한 프로그래밍 언어로, 다양한 기능과 예외 처리 메커니즘을 제공합니다. 예외 처리는 프로그램의 안정성과 신뢰성을 높이는 중요한 부분입니다. 이 글에서는 파이썬의 예외 처리를 위한 try, except, finally 블록의 사용법과 사용자 정의 예외를 다루겠습니다.

1. 파이썬의 예외 처리 기본 개념

파이썬은 프로그램이 예외를 발생시키는 경우를 위해 다양한 예외 클래스를 제공합니다. 예를 들어, ValueError, TypeError, IOError, FileNotFoundError, PermissionError, ImportError, NameError 등이 있습니다. 이러한 예외들은 프로그램의 실행 중에 발생할 수 있는 다양한 오류를 처리하기 위해 사용됩니다.

1.1 try 블록

try 블록은 예외가 발생할 수 있는 코드를 포함하는 블록입니다. 이 블록 내에서 코드가 실행되다가 예외가 발생하면 except 블록이 실행됩니다. 만약 예외가 발생하지 않았을 때만 실행하고 싶은 코드가 있다면 else 블록을 사용할 수 있습니다. finally 블록은 무조건 실행해야 할 코드를 포함하는 블록으로, 예외가 발생하든 발생하지 않든 항상 실행됩니다.

try:
    # 예외가 발생할 수 있는 코드
except 예외종류 as 예외객체:
    # 예외가 발생했을 때 실행할 코드
else:
    # 예외가 발생하지 않았을 때 실행할 코드
finally:
    # 무조건 실행할 코드

1.2 except 블록

except 블록은 try 블록 내에서 발생한 예외를 처리하는 블록입니다. 여러 except 블록을 사용하여 예외의 종류별로 구분할 수 있습니다. 예를 들어, ZeroDivisionErrorTypeError를 각각 처리할 수 있습니다.

try:
    # 예외가 발생할 수 있는 코드
except ZeroDivisionError:
    # ZeroDivisionError가 발생했을 때 실행할 코드
except TypeError:
    # TypeError가 발생했을 때 실행할 코드

1.3 finally 블록

finally 블록은 try 블록의 실행 여부와 관계없이 항상 실행되는 블록입니다. 예외가 발생하든 발생하지 않든 무조건 실행해야 할 코드를 포함합니다.

try:
    # 예외가 발생할 수 있는 코드
except 예외종류 as 예외객체:
    # 예외가 발생했을 때 실행할 코드
finally:
    # 무조건 실행할 코드

2. 사용자 정의 예외

파이썬에서는 사용자 정의 예외를 만들 수 있습니다. 사용자 정의 예외를 만들기 위해서는 class 키워드를 사용하여 새로운 클래스를 정의하고, 이 클래스를 Exception 클래스를 상속하여 만듭니다.

class MyError(Exception):
    pass

try:
    # 예외가 발생할 수 있는 코드
    raise MyError("사용자 정의 예외 메시지")
except MyError as e:
    # 사용자 정의 예외가 발생했을 때 실행할 코드
    print(f"사용자 정의 예외 발생: {e}")

3. 예외 발생시키기

문제 상황을 알려야 할 때 raise 키워드를 사용하여 예외를 발생시킬 수 있습니다. 예를 들어, 특정 조건이 만족하지 않을 때 예외를 발생시키는 코드를 작성할 수 있습니다.

def check_age(age):
    if age < 18:
        raise ValueError("나이가 18세 미만입니다.")
    else:
        return True

try:
    check_age(17)
except ValueError as e:
    print(f"에러 발생: {e}")

4. 예외 처리의 중요성

예외 처리는 프로그램의 안정성과 신뢰성을 높이는 중요한 부분입니다. 프로그램이 예외를 처리하지 못하면 프로그램이 비정상적으로 종료될 수 있으며, 사용자에게 불편을 줄 수 있습니다. 따라서, 프로그램의 예외 처리를 철저히 하여 프로그램의 안정성을 높이는 것이 중요합니다.

4.1 예외 처리의 예

다음 예제는 예외 처리의 중요성을 보여줍니다. 프로그램이 예외를 처리하지 못하면 프로그램이 비정상적으로 종료될 수 있습니다.

def divide(x, y):
    try:
        result = x / y
        return result
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다.")
    else:
        print(f"결과: {result}")
    finally:
        print("계산이 완료되었습니다.")

divide(10, 0)

파이썬의 예외 처리는 프로그램의 안정성과 신뢰성을 높이는 중요한 부분입니다. try, except, finally 블록을 사용하여 예외를 처리하고, 사용자 정의 예외를 만들 수 있습니다. 예외 처리를 철저히 하여 프로그램의 안정성을 높이는 것이 중요합니다. 이 글에서 다루었듯이, 예외 처리는 프로그램의 개발과 유지보수에 중요한 역할을 합니다.

반응형