Eu venho tendo essa dúvida a meses e ate hoje não consegui achar uma boa solução.
Meu problema: tentar convencer alguém de duas coisas:
-Exceções não existem para te atrapalhar ou te punir.
-Exceções devem ser tratadas e não ignoradas.
Porém eu venho me mostranto incapaz de fazer isso.
Alguêm aqui já obteve sucesso com algo desse tipo? Conhece alguma dica ou artigo de como eu faço para sair desse tunel sem luz evitando ser grosseiro?
Se o individuo nao esta disposto a querer entender, entao ja comecou mal… uma das piores coisas que tem eh vc querer explicar algo para alguem que de cara ja nao esta disposto a aceitar os argumentos…
Argumentos como “ignorar uma exception torna o teu programa dificil de debugar em caso de erro; pode ocasionar funcionamento inesperado, pois o erro nao sera reportato/tratato; tratar uma exception te da a chance de mostrar uma msg de erro amigavel ao usuario, tentar uma outra solucao dinamicamente, logar o erro, avisar o administrador; exceptions existem para ajudar a previdir erros comuns ( lance das checked exceptions )” e coisas assim me parecem argumentos mto validos, e vc ja deve ter usado eles, pois sao os obvios…
Talvez se vc mostrasse com programinhas de exemplo as diferencas entre um caso e outro… assim o cara veria com os proprios olhos os beneficios…
Mas de qualquer maneira, se a pessoa nao esta disposta a entender, fica muito complicado mesmo…
Sobre ignorar a excessão, o Rafael já falou. Se ela existe, é porque tem sua utilidade. Ignorá-la pode mascarar bugs ou simplemente é um recurso que se perde e que poderia tornar sua aplicação mais robusta.
Uma solucao pratica seria olhar o codigo com todos os warnings do Eclipse 3.0 M4 ligadas - um dos warnings que ele manda eh sobre blocos de codigo vazios (os famosos catch(Exception e) { }).
Outra ideia eh fazer com que TODAS as classes no seu sistema implementem uma interface, e que esta interface mande jogar as excecoes. Assim, quando o cara estiver programando, e mandar implementar a interface na IDE, ela nao vai chiar pela falta de try/catch, pq o throws ja esta especificado. Alem de ser uma boa pratica de programacao escrever tudo em cima de interfaces, de quebra vc ainda controla melhor a estupidez do pessoal
cv1
Outra ideia simples: procure todos os usos de printStackTrace() no codigo, e com certeza vc vai achar um MONTE de excecao mal-tratada.
bush
Não briguem comigo, mas é exceções, ô meu !
[]´s
cv1
Spellchecked by cv
Daniel_Quirino_Olive
Peça para estas pessoas trocarem umas idéias com a Clotilde .
Mas, falando sério, a idéia que o Carlos propôs é boa, mas é paleativa. Você precisa explicar que exceções existem para que se possam identificar comportamentos inesperados pela sua aplicação e que precisam ser tratados para que o usuário não sofra com aplicações instáveis e que não oferecem possibilidades de recuperação do estado anterior ao do erro. Se estas pessoas forem partidárias do “on error goto hell” para tratamento de erros, então argumente que exceções servem TAMBÉM para que se trate erros diferentes de maneiras diferentes (ahh isso também serve para aqueles que costumam usar “catch(Exception e) {…” para tratar exceções).
É isso.