Excepções (Java)/Exemplos simples de excepções: Difference between revisions
From Wiki**3
< Excepções (Java)
mNo edit summary |
No edit summary |
||
Line 36: | Line 36: | ||
<FONT COLOR="#800000"><B>$ java Teste1</B></FONT> | <FONT COLOR="#800000"><B>$ java Teste1</B></FONT> | ||
PILHA! | PILHA! | ||
FINALMENTE! | |||
== Caso 2 == | |||
=== Excepção === | |||
<B>class</B> UmaExcepção <B>extends</B> <B><FONT COLOR="#0095ff">Exception</FONT></B> {} | |||
=== Programa === | |||
<B>public</B> <B>class</B> Teste2 { | |||
<B>public</B> <FONT COLOR="#800000">static</FONT> <FONT COLOR="#800000">void</FONT> <FONT COLOR="#000080">f</FONT>() <B>throws</B> UmaExcepção { | |||
<B>throw</B> <B>new</B> <FONT COLOR="#000080">UmaExcepção</FONT>(); | |||
} | |||
<B>public</B> <FONT COLOR="#800000">static</FONT> <FONT COLOR="#800000">void</FONT> <FONT COLOR="#000080">g</FONT>() <B>throws</B> UmaExcepção { | |||
<FONT COLOR="#000080">f</FONT>(); | |||
} | |||
<B>public</B> <FONT COLOR="#800000">static</FONT> <FONT COLOR="#800000">void</FONT> <FONT COLOR="#000080">main</FONT>(<B><FONT COLOR="#0095ff">String</FONT></B>[] args) { | |||
<B>try</B> { | |||
<FONT COLOR="#000080">g</FONT>(); | |||
} | |||
<B>catch</B> (UmaExcepção e) { | |||
<B><FONT COLOR="#0095ff">System</FONT></B>.<FONT COLOR="#000080">out</FONT>.<FONT COLOR="#000080">println</FONT>(<FONT COLOR="#dd0000">"UmaExcepção apanhada!"</FONT>); | |||
} | |||
<B>finally </B>{ | |||
<B><FONT COLOR="#0095ff">System</FONT></B>.<FONT COLOR="#000080">out</FONT>.<FONT COLOR="#000080">println</FONT>(<FONT COLOR="#dd0000">"FINALMENTE!"</FONT>); | |||
} | |||
} | |||
} | |||
===Resultado=== | |||
<FONT COLOR="#800000"><B>$ java Teste2</B></FONT> | |||
UmaExcepção apanhada! | |||
FINALMENTE! | FINALMENTE! |
Revision as of 15:01, 15 October 2005
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!