16 lines
486 B
Python
16 lines
486 B
Python
import functools
|
|
from typing import Callable, Any
|
|
from fastapi import Response
|
|
|
|
|
|
def handle_exception(status_code: int = 500):
|
|
def decorator(func: Callable) -> Callable:
|
|
@functools.wraps(func)
|
|
async def wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
try:
|
|
return await func(*args, **kwargs)
|
|
except Exception as e:
|
|
return Response(content=str(e), status_code=status_code)
|
|
return wrapper
|
|
return decorator
|