Tratamento de exceções e bloco try e catch

4 respostas
LPJava

ae pessoal, o deitel nao deixou claro pq usar o bloco try e catch no tratamento de exceções… alguem pode me dar um help? outro fato tb no codigo em anexo nao entendi pq ele usou

throws ArithmeticException

antes do metodo…

4 Respostas

nilolima

Dentro do bloca try vc monitora metodos que possam lançar exceções.
Em um bloco catch vc trata as possiveis exceções lançadas dentro de um bloca try.

Quando vc vai usar um método que lança uma exceção verificada vc tem que ou trata-la ou relaça-la.

fazendo throws … depois da assinatura do método vc relança.

Conselho cara compra um livro que preste.

Head First JAVA é muito bom.

Ironlynx

camilolopes, dá uma olhada com carinho no link abaixo:
http://br.geocities.com/vanessasabino/java/ej6.html

W

http://br.geocities.com/vanessasabino/java/ej6.html
Poxa a Vanessa sumiu…a ultima vez que a vi foi em 2003. Alguêm sabe dela…??? :idea:

E

ai Camilo , recente tava lendo um artigo sobre try-catch

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”.

Criado 3 de setembro de 2006
Ultima resposta 4 de set. de 2006
Respostas 4
Participantes 5