File size: 1,031 Bytes
7169bc5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
"""
Error handling module for Financial Market Data MCP Server.
Provides secure error handling decorator.
"""
import logging
from functools import wraps
from datetime import datetime
from typing import Callable, Any
logger = logging.getLogger(__name__)
def handle_errors(func: Callable) -> Callable:
"""
Decorator for secure error handling.
Logs detailed errors but returns sanitized messages to users.
"""
@wraps(func)
def wrapper(*args, **kwargs) -> Any:
try:
return func(*args, **kwargs)
except Exception as e:
# Log full error details for debugging
logger.error(f"Error in {func.__name__}: {str(e)}", exc_info=True)
# Return sanitized error message to user
return {
"error": "An error occurred while processing your request. Please try again later.",
"error_code": "INTERNAL_ERROR",
"timestamp": datetime.now().isoformat()
}
return wrapper
|