Tratamento de erro

Na linguagem Tenda, erros não são lançados como exceções. Em vez disso, eles são tratados como valores retornados por funções, em um formato padronizado. Essa abordagem torna o fluxo de execução mais previsível e fácil de acompanhar — especialmente para quem está começando a programar.

Conceito

Funções que podem falhar retornam dicionários com uma das seguintes chaves:

  • "valor" — quando a operação foi bem-sucedida;
  • "erro" — quando ocorreu uma falha.

Esse padrão é inspirado em linguagens como Lua, Go e Rust, onde o tratamento explícito de erros é incentivado desde o início.

Exemplo: conversão de texto para número

A função Texto.para_número tenta converter uma string para número. Se o texto não for um número válido, ela retorna um erro.

seja número = leia("Digite um número: ")
seja resultado = Texto.para_número(número)

se resultado tem "erro" então
  exiba("Erro: número inválida.")
senão
  exiba("Número válido: " + resultado.valor)
fim