"""
Custom exceptions for Nova Trading SDK

Example:
    >>> from nova_trading_sdk import NovaClient, AuthenticationError
    >>> try:
    ...     client = NovaClient(api_key="invalid")
    ...     client.get_balance()
    ... except AuthenticationError:
    ...     print("Invalid API key")
"""

class NovaAPIError(Exception):
    """Base exception for API errors"""
    pass

class AuthenticationError(NovaAPIError):
    """Raised when authentication fails"""
    pass

class ExchangeError(NovaAPIError):
    """Raised when an exchange-specific error occurs"""
    pass

class RateLimitError(NovaAPIError):
    """Raised when rate limit is exceeded"""
    pass

class ValidationError(NovaAPIError):
    """Raised when input validation fails"""
    pass
