Tratamento de exceção: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Aleth Bot (discussão | contribs)
m Bot: Substituição automática de afluentes - solicitado em Usuária:Aleth Bot/Substituição de afluentes
Linha 23:
Algumas poucas linguagens também permitem o uso da cláusula (<code>else</code>) que é utilizada em caso de exceção ocorrida antes do final do escopo do bloco de tratamento ser alcançado. Mais comum é a utilização da cláusula <code>finally</code> (ou <code>ensure</code>) que é executada independente da ocorrência da exceção, tipicamente para liberar os recursos obtidos no corpo do bloco de tratamento de exceções. A linguagem C++ não possui tal cláusula e, como alternativa, a técnica de [[Resource Acquisition Is Initialization]] pode ser utilizada para liberar os recursos.
 
'''<big>Linguagens com tratamentos de exceções:</big>'''
* Ada;
* Object Pascal;
* C++;
* Java;
* PHP (versão 5);
* Python;
* Ruby;
* Entre outras.
'''<big>Linguagens que não usam tratamento de exceções:</big>'''
* Linguagem C;
* Pascal;
* Modula-2.
O código de tratamento de exceções pode parecer como o mostrado abaixo (em [[pseudo-código]]):
 
Linha 30 ⟶ 43:
throw new EmptyLineException("A linha lida da console está vazia!");
}
console.printLine("Alô %s!" % line);
} catch (EmptyLineException e) {
console.printLine("Alô!");