Excepções (Java)/Exemplos simples de excepções: Difference between revisions
From Wiki**3
< Excepções (Java)
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
== Caso 1 == | == Caso 1 == | ||
Line 73: | Line 71: | ||
UmaExcepção apanhada! | UmaExcepção apanhada! | ||
FINALMENTE! | FINALMENTE! | ||
[[category:PO Exemplos]] |
Latest revision as of 18:31, 23 October 2013
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!