from typing import Any, Optional
class DcpError(Exception):
def __init__(self, message: str, code: Optional[int] = None, data: Optional[Any] = None):
super().__init__(message)
self.message = message
self.code = code
self.data = data
class ConnectionError(DcpError):
pass
class TimeoutError(DcpError):
pass
class ProtocolError(DcpError):
pass
class MethodNotFoundError(DcpError):
def __init__(self, method: str):
super().__init__(f"Method not found: {method}", code=-32601)
self.method = method
class InvalidParamsError(DcpError):
def __init__(self, message: str = "Invalid params"):
super().__init__(message, code=-32602)