Exceções¶
Catálogo completo de exceções do Global-Data-Finance.
Exceções Globais (macro_exceptions)¶
NetworkError¶
class NetworkError(Exception):
"""Erro de rede durante download."""
Quando ocorre: Problemas de conexão HTTP
Como tratar:
try:
cvm.download(...)
except NetworkError as e:
print(f"Erro de rede: {e}")
# Verificar conexão e tentar novamente
TimeoutError¶
class TimeoutError(Exception):
"""Timeout em requisição."""
Quando ocorre: Requisição excede tempo limite
ExtractionError¶
class ExtractionError(Exception):
"""Erro ao extrair arquivo."""
Quando ocorre: Falha ao extrair ZIP ou processar dados
EmptyDirectoryError¶
class EmptyDirectoryError(Exception):
"""Diretório vazio ou sem arquivos esperados."""
Quando ocorre: Diretório não contém arquivos necessários
InvalidDestinationPathError¶
class InvalidDestinationPathError(ValueError):
"""Caminho de destino inválido."""
Quando ocorre: Caminho não existe ou sem permissões
DiskFullError¶
class DiskFullError(OSError):
"""Disco cheio."""
Quando ocorre: Espaço insuficiente em disco
SecurityError¶
class SecurityError(Exception):
"""Violação de segurança."""
Quando ocorre: Tentativa de acesso não autorizado
Exceções CVM¶
InvalidDocName¶
class InvalidDocName(Exception):
"""Tipo de documento inválido."""
Quando ocorre: Documento não está na lista de disponíveis
Como tratar:
try:
cvm.download(list_docs=["INVALID"])
except InvalidDocName:
docs = cvm.get_available_docs()
print(f"Documentos válidos: {list(docs.keys())}")
InvalidFirstYear¶
class InvalidFirstYear(Exception):
"""Ano inicial inválido."""
Quando ocorre: Ano < mínimo ou > atual
InvalidLastYear¶
class InvalidLastYear(Exception):
"""Ano final inválido."""
Quando ocorre: Ano < initial_year ou > atual
EmptyDocumentListError¶
class EmptyDocumentListError(Exception):
"""Lista de documentos vazia."""
Quando ocorre: list_docs é lista vazia
Exceções B3¶
InvalidAssetsName¶
class InvalidAssetsName(Exception):
"""Classe de ativo inválida."""
Quando ocorre: Ativo não está na lista de disponíveis
Como tratar:
try:
b3.extract(assets_list=["invalid"])
except InvalidAssetsName:
assets = b3.get_available_assets()
print(f"Ativos válidos: {assets}")
EmptyAssetListError¶
class EmptyAssetListError(Exception):
"""Lista de ativos vazia."""
Quando ocorre: assets_list é lista vazia
Hierarquia de Exceções¶
Exception
├── NetworkError
├── TimeoutError
├── ExtractionError
│ └── CorruptedZipError
├── SecurityError
├── InvalidDocName
├── InvalidFirstYear
├── InvalidLastYear
├── InvalidAssetsName
├── EmptyAssetListError
├── EmptyDocumentListError
└── EmptyDirectoryError
ValueError
└── InvalidDestinationPathError
OSError
└── DiskFullError
Exemplo de Tratamento Completo¶
from globaldatafinance import FundamentalStocksDataCVM
from globaldatafinance.brazil.cvm.fundamental_stocks_data.exceptions import *
from globaldatafinance.macro_exceptions import *
cvm = FundamentalStocksDataCVM()
try:
cvm.download(
destination_path="/data/cvm",
list_docs=["DFP"],
initial_year=2022
)
except InvalidDocName as e:
print(f"Documento inválido: {e}")
except InvalidFirstYear as e:
print(f"Ano inválido: {e}")
except NetworkError as e:
print(f"Erro de rede: {e}")
except TimeoutError as e:
print(f"Timeout: {e}")
except DiskFullError as e:
print(f"Disco cheio: {e}")
except Exception as e:
print(f"Erro inesperado: {e}")
Veja também: