""" 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