Blog

Aprenda For Aprimorado Java 5

Opa Pessoal! Hoje vou falar sobre o for aprimorado conhecido também como for each. Este recurso presente a partir do Java 5 e no exame para certificação. Apresentei como e onde utilizar. Espero que gostem…

Lets go…

carnaval_barra_ondina2

For aprimorado

O for aprimorado tem como objetivo de facilitar o loop em array ou em conjunto (List,Set etc.). A estrutura é bem simples:

for(declaração : expressão)

Declaração: aqui declaramos o tipo da variável que vai receber os elementos de um Array ou Conjunto.

Expressão: aqui será o array ou o conjunto que deseja percorrer.

Exemplo:

for(int a:array){}
obs.: estamos levando em conta que a variável array é um Array do tipo int.

Quando devo usar?

  • quando deseja percorrer todo o conjunto ou array, sem precisar informar o tamanho.

Ponto importante:

  • deve ser usado array e conjuntos do mesmo tipo da declaração(int,double, Object), caso contrário não compila.

  • O for aprimorado não tem como objetivo de substituir o for básico, aqui foi apenas um forma aprimorada de se trabalhar com array e conjunto usando a instrução for. Há situações que o for aprimorado não é mais adequado. ex.: quando é necessário determinar que uma posição em um conjunto ou array.

Na prática:

code-1-forapri


explicação:

  1. primeiramente foi criado um array do tipo int.

  2. Em seguinda temos o for aprimorado que vai percorrer todo o array e ir imprimindo os elementos.

  3. o resultado 1,2,3.

Código não compila:

code-2-forapri

explicação:

  1. É requisito o tipo declarado estar de acordo com o tipo do conjunto ou array, caso contrário o compilador vai reclamar. Conforme o código acima

  2. Na situação apresentada foi informado um array do tipo int e não uma variável do tipo dos elementos do array.

For básico:

code-3-forbasic

  1. observe que o código acima tem o mesmo resultado que o exemplo code 1. Porém tivemos mais linhas para ler.

  2. Um detalhe importante que não deve ser esquecido se sua aplicação vai rodar em uma JVM que a versão for inferior ao Java 1.5 o código não vai compilar se usar for aprimorado.

Abraço a todos e até o próximo post. E bom Carnaval 🙂

Tratamento de exceções na prática

Olá Pessoal!

Continuando o post sobre “Tratamento de exceções”, hoje veremos os casos de uso e os erros de compilações na prática. No post, teremos primeiramente o código e em seguida uma breve explicação da situação (em algumas classes o próprio comentário é a explicação).

Procurei apresentar os casos mais comuns sobre o assunto. Espero que gostem do post.

Lets go…

code-1-excecoes


Explicação: O código acima compila e executa, mas, será exibida uma mensagem Exception in thread “main” java.lang.NegativeArraySizeException já que não é permitido o uso de valor negativo na declaração do tamanho do array. O código compila porque não há nada de errado na estrutura do código, o que aconteceu foi apenas uma falha do programador. Na clausula catch{} o programador pede para mostrar o caminho de onde vem a exceção, mas, o recomendado seria o tratamento para esse tipo de exceção.

Regras a serem seguidas:

  • as exceções mais especificas (subclasses) devem estar acima da sua superclasse na clausula catch{} (em caso de dúvida sobre a hierarquia consulte a imagem hierárquica no post anterior ).

code-2-3-excecies

  • todo método que lançar uma exceção verificada deve declarar (throws) ou tratar (catch{}). Senão o código não compila.

code-4-excecoes


code-5-excecoes


Vou ficando por aqui. Um forte abraço a todos e até a próxima!

Tratamento de exceções em Java

Olá amigos, colegas e leitores!.

Hoje vou falar um pouquinho sobre o tratamento de exceções em Java. Apresentarei o porque usar, sua estrutura e o que é uma exceção. É comum para os iniciantes nos estudos com Java, ao chegar no assunto “Tratamento de Exceções” não conseguir visualizar a utilidade desse recurso e confundir os resultados com as instruções condicionais.

Para não ficar um artigo muito grande e cansativo, teremos um outro para complementar o que foi discutido aqui, porém de modo prático.

Lets go…

studying

Mas a pergunta é: Por que usar tratamento de exceções?

Usar tratamento de exceções permite detectar erros e manipular esses erros, ou seja, tratá-los.

Instruções condicionais & Tratamento de exceções.

A grande diferença, é que instruções não servem para tratar erros e sim para testar condições se X não for verdadeiro. Assim: ao contrário das exceções que tem como objetivo detectar áreas onde possíveis erros possam acontecer e tratá-lo. Lembre o fato de um programador colocar dentro de uma instrução if…else que, se o usuário não digitar os valores válidos, informa que está errado. Isso não quer dizer que aconteceu um erro e ele foi tratado, apenas que, a condição esperada não aconteceu.

Agora veremos abaixo a estrutura de como tratar um erro ou exceção:

try – é usada para indicar um bloco de código que possa ocorrer uma exceção.

catch – serve para manipular as exceções, ou seja, tratar o erro

finally – sempre será executado depois do bloco try/catch. O importante é saber que esse bloco sempre será executado (exceto nos casos de encerramento da jvm System.exit()).

Veja abaixo as combinações válidas e inválidas para o uso do try{}, cacth{} e finally{} (isso é questão de certificação).

Combinações válidas:

try{}

catch{}

try{}

finally{}

try{}

catch{}

finally{}

Inválidas não Compila:

try{}

catch{}

finally{}

try{}

finally{}

catch{}

O que é uma Exceção?

É uma ocorrência que altera o fluxo do programa. As exceções podem ocorrer por falhas de hardware, exaustão de recursos e erros.

  1. As palavras try e catch servem para informar a JVM o que fazer quando ocorrer uma exceção.

  2. Os blocos catch devem aparecer após o try (isso é um requisito); entre os blocos não podem possuir nenhuma instrução.

  3. Quando uma exceção é identificada no try{} o restante do código não é executado e não há um retorno para o termino do código.

Exceções verificadas e não verificadas

– Toda exceção verificada deriva da class Exception.

– As não verificadas ou não-checadas, deriva da class RuntimeException.

Throwable – é o pai de todas as exceções.

Error – não são exceções e sim erros que jamais poderiam ter acontecido. ex.: estouro da memória.

Exception- as classes que deveriam aqui, lançar exceções e não erros de programação. Exemplo: tentar abrir um arquivo que não existe. Então, é lançado uma exceção verificada, porque a classe de leitura de arquivos deriva de Exception.

RuntimeException – são exceções que indicam erros de programas (não de lógica, pois senão não passaria pelo compilador). Esse tipo de exceção é conhecido como não verificada. Sendo assim, não é requisito declarar uma cláusula try{} e catch{}. Ex.: tentar converter “dois” em “2”.

Obs.: Implicitamente, todas as classes em java automaticamente já lançam uma exceção de RuntimeException.

hierarquiaexcecoes

Figura1 – Hierarquia Exceções (nao sou muito bom de desenho rs)

Espero que tenham gostado. Um abraço a todos e até o próximo. Abraços! Não deixem de acessar meu blog.

Volta as aulas – Solicite uma palestra IT

Olá Pessoal!

Primeiros meses do ano se passando e lá vem às aulas. Mas o que você gostaria ter um semestre diferente? Que tal uma palestra de um IBMer? Pensando nisso, estou disponibilizando para download, o formulário “Solicitação de palestra IBM”. Procure a coordenação do seu curso na sua universidade/faculdade, apresente a proposta e peça que o coordenador do seu curso envie o formulário para o endereço: camilosi@hotmail.com (a partir do envio do formulario será disponibilizado um e-mail IBM para futuros contatos, por medida de segurança nao estou disponibilizando o mesmo aqui no blog). Quem sabe você pode ter a sorte de ter aquela palestra que tanto sonhava*.

Lembrando que isso é uma iniciativa do:

ai-logo

Você ainda não conhece IBM Academic Initiative? Então confira no link a seguir.

Academic Initiative você conhece?

Formulário solicitacao palestras

*Devido ao número de recebimentos o envio do formulário não é garantia da palestra, a sua solicitação será analisada,mas buscaremos atender dentro da disponibilidade do IBMer para área solicitada de acordo com as datas disponíveis.

Softwares que apóiam ODF

lotus-symphony

broffice
Bom pessoal! Dando continuidade ao assunto ODF, hoje estarei apresentando os softwares e APIs que dão suporte ao formato. Somente para matar a curiosidade de qual deles eu uso então lá vai: BrOffice e Symphony (IBM).

Software que aceitam ODF:

  1. OpenOffice.org (já atualizado com as novas regras do português)

  2. BrOffice.org (já atualizado com as novas regras do português)

  3. StarOffice

  4. Lotus Symphony (IBM)

  5. KOffice suite

  6. AbiWord

  7. Gnumeric

  8. OOo Label Templates – para fazer etiquetas com o OpenOffice, baseado em XML. Licença GNU e GPL.

  9. TextMaker Viewer – para ver documentos em OpenDocument, Microsoft Word e seu formato próprio TextMaker.

  10. Viewer Visioo-Writer.

  11. Writely, – Processador de texto Web do Google.

  12. Google Spreadsheet, – Planilha (“folha de cálculo”) Web do Google.

Algumas APIs:

  1. ODF .NET, OpenDocument API para .NET Framework e .NET Compact Framework

  2. ODF Easy, API de geração de documentos ODF para a plataforma Java

Um abraço, a todos e agora é só escolher qual deles utilizar para documentar seus trabalhos em ODF. A minha recomendação vai para o BROffice e o Symphony. Fiz a substituição do Microsoft Office há 4 meses e não tive problema nenhum com as novas ferramentas, pelo contrário adquiri mais segurança e produtividade, já que agora meus arquivos estão sendo salvos em ODF.