Erros

Toda função de rota falha com ErroAoChamarServico, com o status HTTP e o campo erro da resposta.

Toda falha das funções geradas chega como ErroAoChamarServico, com o mesmo formato nas duas linguagens.

Tipo (TypeScript)Variante (Rust)Quando acontece
falha_ao_montar_requisicaoFalhaAoMontarRequisicaofaltou algo antes de enviar (ex.: segredo do app)
falha_de_conexao_com_o_servicoFalhaDeConexaoComOServicorede, DNS, tempo limite
servico_respondeu_com_erroServicoRespondeuComErroo serviço respondeu 4xx ou 5xx
resposta_do_servico_em_formato_inesperadoRespostaDoServicoEmFormatoInesperadoa resposta não bate com o contrato

Campos: nome_do_servico, detalhe, status_http, mensagem_de_erro (o campo erro do corpo, quando o serviço responde { "erro": "..." }) e corpo_da_resposta.

Métodos

MétodoDevolve
status_http_da_resposta()o status HTTP, só quando o serviço respondeu com erro
servico_nao_encontrou_o_registro()true para 404
vale_tentar_de_novo()true para falha de conexão, 408, 429 e 5xx

Exemplo

import { ErroAoChamarServico } from "termo_core";
import { buscar_pelo_id_usuario } from "termo_core/auth";

try {
  const usuario = await buscar_pelo_id_usuario(credencial_de_acesso, id);
} catch (erro) {
  if (erro instanceof ErroAoChamarServico && erro.servico_nao_encontrou_o_registro()) {
    // 404: o usuário não existe
  } else if (erro instanceof ErroAoChamarServico && erro.vale_tentar_de_novo()) {
    // rede ou 5xx: tente mais tarde
  } else {
    throw erro;
  }
}

O cancelamento por sinal_de_cancelamento chega como o AbortError do próprio fetch, não como ErroAoChamarServico.

Nesta página