-
Notifications
You must be signed in to change notification settings - Fork 23
Exceções
Em programação, é natural haver partes da execução que causam eventos problemáticos. Estes são chamados de exceções e pedem uma resolução pelo desenvolvedor.
Um exemplo comum de exceção é uma operação entre tipos diferentes. Por exemplo:
escreva(1 > "2")
Neste caso, o Interpretador Delégua levanta uma exceção do tipo ErroEmTempoDeExecucao
, e a mensagem "Operadores precisam ser números". Isso porque não é possível usar o operador maior para um literal inteiro e um literal texto.
Exceções são bastante comuns em qualquer código de qualquer linguagem. Em Delégua, existe uma construção especial, chamada tente ... pegue ... finalmente
, ou apenas tente
, que executa esperando uma exceção dentro do escopo:
tente {
1 > "2" // Aqui ocorre uma exceção
escreva("sucesso")
} pegue {
escreva("Ocorreu uma exceção.")
} finalmente {
escreva("Ocorrendo exceção ou não, eu sempre executo")
}
Se você precisa saber qual foi o erro, pode usar pegue
contendo um parâmetro como argumento:
tente {
1 > "2" // Aqui ocorre uma exceção
escreva("sucesso")
} pegue (erro) {
escreva(erro) // Este comando irá executar, escrevendo o erro na saída padrão.
}
Esse parâmetro em pegue
não é suportado em Égua Clássico.
Se por algum motivo o código precisa provocar uma exceção, temos o comando falhar
, que cria uma exceção no ponto onde é executado, interrompendo a execução:
falhar "Um erro econteceu aqui."
Ou seja:
tente {
falhar "Um erro econteceu aqui."
escreva("sucesso") // Não escreve, como nos exemplos anteriores.
} pegue (erro) {
escreva(erro) // Escreve "Um erro econteceu aqui."
}
- Estruturas de dados elementares
- Entrada e saída
- Operadores
- Condicionais
- Laços de repetição
- Funções
- Funções nativas
- Escopos
- Exceções
- Tipos e Inferência de variáveis
- Orientação a objetos
- Decoradores
- Tradução para outras linguagens
- Compilação para código de máquina
- Dialetos suportados em Delégua
- Implementando Delégua na sua aplicação
- Estruturas de dados elementares
- Entrada e saída
- Operadores
- Condicionais
- Laços de repetição
- Funções
- Funções nativas
- Escopos
- Exceções
- Tipos e Inferência de variáveis
- Orientação a objetos
- Decoradores
- Tradução para outras linguagens
- Compilação para código de máquina
- Dialetos suportados em Delégua
- Implementando Delégua na sua aplicação