Excepções (Java)/Exemplos simples de excepções: Difference between revisions
From Wiki**3
< Excepções (Java)
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
Os exemplos apresentados aqui são complementados pelos apresentados para a [[PO 2005/06: Exemplos da Aula 16|Aula 16]]. | |||
== Caso 1 == | == Caso 1 == | ||
Revision as of 15:15, 15 October 2005
Os exemplos apresentados aqui são complementados pelos apresentados para a Aula 16.
Caso 1
Um erro detectado em tempo de execução. Embora não seja habitual tratar os erros como se fossem excepções, é possÃvel fazê-lo.
Excepção
class UmaExcepção extends Exception {}
Programa
public class Teste1 { public static void f() throws UmaExcepção { throw new UmaExcepção(); } public static void g() throws UmaExcepção { g(); // vai rebentar com a pilha e gerar um StackOverflowError } public static void main(String[] args) { // unreported exception UmaExcepção; must be caught or declared to be thrown // g(); try { g(); } catch(StackOverflowError e) { // não devia ser apanhado! mas pode ser... System.out.println("PILHA!"); } catch (UmaExcepção e) { /* este bloco nunca é executado! */ } finally { System.out.println("FINALMENTE!"); } } }
Resultado
$ java Teste1 PILHA! FINALMENTE!
Caso 2
Excepção
class UmaExcepção extends Exception {}
Programa
public class Teste2 { public static void f() throws UmaExcepção { throw new UmaExcepção(); } public static void g() throws UmaExcepção { f(); } public static void main(String[] args) { try { g(); } catch (UmaExcepção e) { System.out.println("UmaExcepção apanhada!"); } finally { System.out.println("FINALMENTE!"); } } }
Resultado
$ java Teste2 UmaExcepção apanhada! FINALMENTE!