from vectrade import (
VecTradeError,
AuthenticationError,
RateLimitError,
NotFoundError,
ServerError,
)
try:
quote = client.quotes.get(symbol)
except AuthenticationError:
# Rotate key or alert ops
logger.critical("API key invalid — check rotation schedule")
except RateLimitError as e:
# SDK retries automatically, but if exhausted:
logger.warning(f"Rate limited after retries. Reset in {e.retry_after}s")
except NotFoundError:
# Symbol doesn't exist or was delisted
logger.info(f"{symbol} not found — may be delisted")
except ServerError:
# 5xx — SDK retries automatically
logger.error("VecTrade server error after retries")
except VecTradeError as e:
# Catch-all for unexpected API errors
logger.error(f"Unexpected: {e.type} - {e.message}")