[python] 파이썬을 사용한 웹 애플리케이션의 오류 처리 방법

웹 애플리케이션을 개발하다보면 예기치 않은 오류가 발생할 수 있습니다. 이러한 상황을 대비하여 파이썬을 사용한 웹 애플리케이션에서 오류를 효과적으로 처리하는 방법을 알아보겠습니다.

1. 오류 처리 기본

파이썬은 try-except 구문을 사용하여 오류를 처리합니다. 예외가 발생할 수 있는 코드는 try 블록 안에 작성하고, 해당 예외를 처리하는 코드는 except 블록 안에 작성합니다. 예를 들어:

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError:
    # 예외를 처리하는 코드
    print("0으로 나눌 수 없습니다.")

2. 사용자 정의 예외

때로는 내장된 예외 클래스로는 표현할 수 없는 독자적인 예외를 정의해야 할 수도 있습니다. 이를 위해 사용자 정의 예외 클래스를 작성하여 사용할 수 있습니다. 예를 들어:

class CustomError(Exception):
    def __init__(self, message):
        self.message = message

    def __str__(self):
        return self.message

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

3. 오류 처리 데코레이터

데코레이터를 사용하여 특정 함수에서 발생하는 예외를 처리할 수도 있습니다. 이를 통해 중복된 예외 처리 코드를 줄일 수 있습니다. 예를 들어:

def error_handler(func):
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except Exception as e:
            print(f"에러 발생: {e}")
    return wrapper

@error_handler
def divide(a, b):
    return a / b

result = divide(10, 0)

4. 로깅

오류가 발생했을 때 로그를 남겨 추후 원인 분석에 활용할 수 있습니다. 파이썬의 logging 모듈을 사용하여 로깅 기능을 구현할 수 있습니다. 예를 들어:

import logging

logging.basicConfig(filename='app.log', level=logging.ERROR)

def divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError as e:
        logging.error("0으로 나누기 시도: %s", e)
    return result

결론

파이썬을 사용한 웹 애플리케이션에서는 try-except 구문을 통해 오류를 처리하고, 사용자 정의 예외 클래스를 정의하여 독자적인 오류를 다룰 수 있습니다. 데코레이터를 활용하여 예외 처리를 간편화하고, logging 모듈을 사용하여 로깅 기능을 구현할 수 있습니다.

원본 참조: