[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 모듈을 사용하여 로깅 기능을 구현할 수 있습니다.
원본 참조:
- https://docs.python.org/3/tutorial/errors.html
- https://docs.python.org/3/howto/logging.html