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