domingo, 20 de julho de 2008

Exceções em Java

O conceito de uma exceção em programação é quando algo não ocorre conforme o desejado, logo é iniciado (ou não dependendo da previsão do desenvolvedor) um processo / programa. Em Java há recursos para que essas exceções sejam devidamente tratadas nas cláusulas TRY / CATCH / FINALLY. Sugerindo a classe abaixo:

package br.com.excecoes.everton;

public class Telefone{

public String returnDDD(String str){
return str.substring(0, 3);
}
}

Esse método retornaria o prefixo do telefone, ou seja, os três primeiros dígitos. É importante ressaltar que esse método funcionaria, embora não seja tratado o tipo de informação que está sendo passada por parâmetro, isto é, se esse método receber "null", será lançado uma NullPointerException; se for recebido uma string vazia, a exibição para o usuário final seria StringIndexOutOfBoundsException, convenhamos para um usuário final, é uma situação altamente desagradável receber esse tipo de mensagem na tela do sistema. Vamos aplicar boas práticas de orientação a objetos, cada método deve assumir a responsabilidade pela validação dos dados que recebe. No código a seguir, serão efetuadas algumas revisões no método returnDDD lançando exceções:

public class Telefone {
public String returnDDD(String str) throws Exception{
if(str==null){
throw new IllegalArgumentException("Parâmetro nulo");
}else if(str.length() < 3){
throw new IllegalArgumentException("Tamanho do parâmetro tem que ser maior do que 3");
}
try{
int prefixo = Integer.valueOf(str.substring(0, 3));
}catch(NumberFormatException numEx){
throw new NumberFormatException("Prefixo tem que ser um número");
}
return str.substring(0, 3);
}
}

Revisado o código, a informação recebida é devidamente tratada. Caso seja recebido um valor null para o texto, será lançado uma NullPointerException; caso venha uma string vazia a exibição será StringIndexOutBoundsException. Em ambos situações ocorrem bugs do método returnDDD, sendo que não deveriam acontecer em nenhuma circunstância. Por isso foram criadas exceções mais específicas para que o sistema tenha o mínimo de respostas amigáveis. No caso do nosso método, são tratados mais exceções, como por exemplo o tamanho mínimo da string e se realmente é um valor numérico.

Abaixo temos a classe main que faz a chamada da classe Telefone:

public class ExcecoesJava {
public static void main(String[] args) {
Telefone fone = new Telefone();
try{
System.out.println("O prefixo do telefone eh: " +
fone.returnDDD("12"));
}catch(IllegalArgumentException ex){
System.out.println(ex.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

Vamos verificar algumas mensagens de acordo aos parâmetros passados:
  • parâmetro "011-55556666", a resposta seria: O prefixo do telefone eh: 011;
  • parâmetro null, a resposta seria: Parâmetro nulo;
  • parâmetro "12", a resposta seria: Tamanho do parâmetro tem que ser maior do que 3.

Os parâmetros e respostas em "vermelho", seriam condições negativas, ou seja, erros que seriam passados como parâmetros, embora devidamente tratados por nosso programa.

Sequência
Sempre trate as exceções pela sua respectiva hierarquia, note que no nosso método a última exceção lançada é a Exception, por ser a mais genérica.

Conclusão
O artigo descrito anteriormente teve o intuito de abordar alguns pontos interessantes sobre manipulação de exceções, obviamente existem mais a ser estudado - melhorar os conceitos sempre nos ajuda a entender melhor o mecanismo de tratamento fornecido pelo Java. É importante ressaltar que por mais trabalhoso que aparente, é fundamental o devido tratamento dos erros. Certamente, o projeto será mais robusto, tendo o cuidado de lidar com os erros de forma mais específica, em uma linguagem que possue um mecanismo de tratamento de erros altamente sofisticado.

sábado, 19 de julho de 2008

Compatibilidade de Servidores JAVAEE

Estava no site da sun e encontrei algo muito interessante, uma lista de servidores compatíveis com a tecnologia JAVAEE, isto é, homologados pela Sun MicroSystems. É importante ressaltar que não está sendo mencionado o JBOSS, um dos servidores de aplicações mais utilizados. O JBOSS é um produto maduro, instalado em alguns ambientes de produção de diversos segmentos de mercado por todo o mundo. Para conferir os servidores homologados acesse Compatibility Servers.

terça-feira, 4 de março de 2008

Download da JRE - Java

Hoje em dia diversos programas são feitos em java, inclusive a versão do aplicativo para efetuar a aplicação do imposto de renda exige que seja feito download da JRE java, assim como a diversidade de programas existentes no mercado. Para isso, é necessário que seja feito download para que sejam executados corretamente (para os programadores interpretados pela JVM). Esse aplicativo contém somente o básico para rodar aplicativos java em qualquer equipamento.
Para efetuar o download entrar em: JAVA, sendo que há opções para efetuar download independentemente do sistema operacional utilizado (Windows / Linux / Solaris / Apple).

segunda-feira, 7 de janeiro de 2008

FireFox

O Mozilla FireFox é um produto desenvolvido pela Mozilla Foundation com a colaboração de centenas de desenvolvedores.
Para desenvolvedores é imprescindível a utilização desse navegador, que tem extrema facilidade de uso, pois é permitido a utilização de "abas" dando um visual organizado e limpo ao navegar. Também há um mecanismo de ampliação de recursos denominado "complementos" (a partir da versão 2.0, anteriormente era conhecido como "extensões"). É importante ressaltar que esse navegador segue extritamente as normas do W3C, que estabelece standards e estabelece limites para o desenvolvimento na web definindo uma uniformidade nos componentes. Mas um dos pontos mais fortes do FireFox está no Add-ons (Complementos), que na prática são plug-ins definindo funcionalidades a critério e gosto do usuário. Dentro deles temos o FireBug que permite debugar código JavaScript, MeasureIt que mede em pixels o tamanho de qualquer componente da tela, o Cooliris Previews extremanente útil a webdesigners, pois consegue definir qualquer cor em hexadecimal. Isso sem contar os plug-ins gerenciadores de e-mail (gmail / yahoo), onde o usuário consegue ver sua caixa postal com muita prática. Esses complementos podem ser localizados por nome ou por categoria. O FireFox não é recomendado somente para desenvolvedores, mas para usuários comuns que pretendem obter mais recursos ao navegar na internet. É importante ressaltar que para desenvolvedores há a necessidade de testar sua página no Internet Explorer também, para manter a compatibilidade principalmente quando há JavaScript no seu conteúdo, visando não causar transtornos futuros.

Para efetuar o download entre no site do FireFox