Prezados, boa noite.
No “Java, Use a Cabeça !”, achei a seguinte informação sobre exceções e não consigo concordar, acredito ser por falta de conhecimento.
No Livro fala isso: O compilador não se importa com exceções do tipo “RunTimeException”, ou seja, ela não precisa ser declarada ou inserida em um bloco Try/catch.
Eu pensso assim:
Não é exatamente as Exceções em tempo de execução que nós temos de tratar? Não são exatamente elas que precisamos realizar o manuseio de exceção caso algo incorreto seja digitado ou aconteça longe de ser um problema de lógica?
(Exemplo: Criar uma conexão com Banco de dados, é uma RunTime exception?, por que se for eu lembro que era obrigatório realizar o tratamento de Try/Catch)
As demais exceções, conhecidas como “Exceções Verificadas” que são obrigado o uso do Try/Catch?
Quando vc tenta inserir algo em um indice que não existe na Matriz criada, é um erro de exceção verificada? Por que se for, não lembro ser obrigado de utilizar o Try/Catch sempre que crio uma Matriz…
Enfim, Alguem que tiver um tempinho sobrando pode me explicar detalhadamente isso, de um jeito que “Um burro” possa entender? Hehe
Exceções do tipo RunTime não podem ser tratadas. Não sabemos quando elas vão ser lançadas. Por exemplo: Uma divisão por zero. Não saberemos em nível da programação se uma variável divisora será recebida com zero para poder tratar, por isso não é necessário o tratamento. Ao contrário das outras exceções, q são previsíveis.
Yuzo, obrigado pelo Link.
Após ler tudinho duas vezes eu acabei conseguindo Sanar minhas dúvidas.
aluisiodsv, obrigado igualmente.
Após seu comentário eu acabei entendendo melhor a “lógica” do por que RuntimeException não ter tratamento obrigatório.
Hehe depois que se entende, as coisas ficam tão claras…
Obrigado pela atenção de vocês!
[quote=InsaneChess]Prezados, boa noite.
No “Java, Use a Cabeça !”, achei a seguinte informação sobre exceções e não consigo concordar, acredito ser por falta de conhecimento.
No Livro fala isso: O compilador não se importa com exceções do tipo “RunTimeException”, ou seja, ela não precisa ser declarada ou inserida em um bloco Try/catch.
Eu pensso assim:
Não é exatamente as Exceções em tempo de execução que nós temos de tratar? Não são exatamente elas que precisamos realizar o manuseio de exceção caso algo incorreto seja digitado ou aconteça longe de ser um problema de lógica?
(Exemplo: Criar uma conexão com Banco de dados, é uma RunTime exception?, por que se for eu lembro que era obrigatório realizar o tratamento de Try/Catch)
As demais exceções, conhecidas como “Exceções Verificadas” que são obrigado o uso do Try/Catch?
Quando vc tenta inserir algo em um indice que não existe na Matriz criada, é um erro de exceção verificada? Por que se for, não lembro ser obrigado de utilizar o Try/Catch sempre que crio uma Matriz…
Enfim, Alguem que tiver um tempinho sobrando pode me explicar detalhadamente isso, de um jeito que “Um burro” possa entender? Hehe
[/quote]
oi,
o que acontece é mais ou menos assim:
excessões checked - ops, aconteceu um erro de lógica no meu programa mas eu ainda posso tentar corrigi-lo
excessões não checked - ops, meu programa travou, vou ter que reiniciar a JVM, não tem mais nada que eu possa fazer para corrigi-lo
excessões checked - é provável acontecer aqui um erro, obriga o programador a decidir o que fazer para contorná-lo
excessões não checked - erro não provável de acontecer e que não é obrigatório ser apanhado (mas que pode ser apanhado) e não acontece isso de não poder fazer nada para corrigir
[quote=pmlm][quote=André Fonseca]
o que acontece é mais ou menos assim:
excessões checked - ops, aconteceu um erro de lógica no meu programa mas eu ainda posso tentar corrigi-lo
excessões não checked - ops, meu programa travou, vou ter que reiniciar a JVM, não tem mais nada que eu possa fazer para corrigi-lo
[/quote]
Nada a ver…
excessões checked - é provável acontecer aqui um erro, obriga o programador a decidir o que fazer para contorná-lo
excessões não checked - erro não provável de acontecer e que não é obrigatório ser apanhado (mas que pode ser apanhado) e não acontece isso de não poder fazer nada para corrigir[/quote]
você fala português? eu falei alguma coisa diferente do que você falou? já pensou em fazer um curso de interpretação de texto?
Agora dizer que "ops, meu programa travou, vou ter que reiniciar a JVM, não tem mais nada que eu possa fazer para corrigi-lo " não me parece igual a “erro não provável de acontecer e que não é obrigatório ser apanhado (mas que pode ser apanhado)”
Pela minha interpretação de português, tu dizes que uma exception unchecked não pode ser apanhada e termina com a aplicação. Eu digo que tal não é verdade. São coisa diferentes.