Fa�a uso das Exceptions com cuidado Dica enviada pelo George Gastaldi
Do mesmo modo que � mais dif�cil para as pessoas lerem trechos de c�digo que t�m blocos try-catch, � mais dif�cil para um compilador analisar tal c�digo. Em termos de legibilidade entretanto, blocos try-catch podem ser na verdade ben�ficos, pois eles descrevem os tipos de problemas/situa��es que o software espera gerenciar e como gerenci�-los. Durante a execu��o, a presen�a de um bloco try-catch n�o afeta o desempenho significantemente - exceto quando uma exce��o ocorre. Em tais situa��es entretanto, voc� deve lidar com a exce��o de qualquer maneira, ent�o o custo de desempenho � toler�vel. Somente quando dada situa��o for realmente excepcional (da� o nome exce��o) voc� deve usar este mecanismo, ainda que esteja tentado a lan�ar exce��es para simplesmente fazer uso dos seus aspectos de controle de fluxo. Um bom uso do mecanismo de exce��es seria lan�ar uma exce��o com o nome de um arquivo necess�rio, mas que n�o foi encontrado. Neste caso, o custo de performance imposto pelas exce��es somente seria "debitado" quando o aplicativo em quest�o for incapaz de proceder normalmente. Um mau exemplo do uso de exce��es seria lan�ar uma exce��o com o nome de um arquivo que FOI encontrado, neste caso o custo seria provavelmente "debitado" de sua CPU muitas mais vezes. Observa��o Exce��es em Java s�o somente uma pequena parte do mundo do gerenciamento de exce��es, mas todos os casos ditos "excepcionais" podem ser categorizados em: erros (errors), exce��es em tempo de execu��o (runtime exceptions), e exce��es que n�o ocorrem durante a execu��o (non-runtime exceptions). Um ponto em comum � que todas herdam da classe java.lang.Throwable. Eis uma breve descri��o de cada categoria: Errors: as classes que herdam de java.lang.Error. Essas classes n�o precisam ser manipuladas em um bloco try-catch. Nisto incluem-se OutOfMemoryError e StackOverflowError, que relatam problemas com a m�quina virtual. Normalmente "Errors" n�o s�o recuper�veis. Runtime Exceptions: classes que herdam de java.lang.RuntimeException n�o precisam ser necessariamente manipuladas num bloco try-catch. Nisto incluem-se ArithmeticException e NullPointerException. Runtime Exceptions em programas tendem a ser erros do programador que n�o foram descobertos e tratados durante a fase de teste. A melhor coisa a fazer � corrigir o problema que causou a exce��o. Non-runtime Exceptions: s�o as classes que herdam de java.lang.Exception por�m n�o de java.lang.RuntimeException ou suas herdeiras. Tais classes devem estar obrigatoriamente dentro de um bloco try-catch. Se n�o estiverem, o compilador ir� reclamar. As exce��es podem ser repassadas para a rotina chamadora, atrav�s do uso da keyword "throws". Bons c�digos!!! ______________________________________________________________________________ Handerson Ferreira Gomes Summa Technologies Boletim Dicas Java - Sua dose di�ria de Java. ================================================================================ [dicas-list] circula diariamente com pequenas dicas sobre a plataforma Java e � mais um servi�o da Sociedade de Usu�rios Java - http://www.soujava.org.br *** SouJava - Fortalecendo a Comunidade Java Brasileira! *** - Para contribuir com uma dica, envie um e-mail para [EMAIL PROTECTED] - Participe de outras listas de discuss�o sobre a linguagem Java. Saiba mais em http://www.soujava.org.br/lista.htm -------------------------------------------------------------------------------- - Para assinar este boletim: mailto:[EMAIL PROTECTED] - Para cancelar sua assinatura: mailto:[EMAIL PROTECTED] - Dicas anteriores: http://www.mail-archive.com/dicas-list%40soujava.org.br - Para discutir sobre as dicas, acesse o Mundo OO (http://www.mundooo.com.br)
