Gente, meu código abaixo avaliei e cheguei a questão que não tem diferença alguma se eu tratar ou se não tratar… É importante sempre tratar? Depedende? Já me falaram uma vez que usar try/catch é feio… Vc concorda?
Acho que neste caso nao fez diferenca pq nao ocorreu erro…
Mas se tivesse ocorrido um erro, com o Try/Catch, vc
conseguiria dar uma mensagem amigavel, ou desfazer uma transacao, por exemplo…
Sem o try/catch, geralmente o sistema manda um stacktrace pro console,
ae voce vai ter que ficar caçando onde tá o erro…
No meu ponto de vista, se você tratá-lo ou apenas passar para o próximo tratar não faz diferença. Deixar sem tratamento que é feio. Eu gosto sempre de tratar e dar uma lógica de continuidade no programa para ele. Vamos supor que um usuário teu preencheu o formulário que tem campos obrigatórios mais deixou algum em branco, você vai receber o famoso NullPointerException, porque ao invés disso você não fazer o tratamento do erro para reposicionar o foco no que está null e dar continuidade sem o usuário perder as informações que já foram inseridas?
Se houver sempre um método na frente, você pode ir dando throws nele até chegar no último onde tu faz 1000 catches e trata tudo de uma vez também, mas colocando dessa forma, você não saberia precisamente, fora o stacktrace que seria gigantesco, onde está a ponta do erro, e se ele está com muitos dependentes dele ou não.
Pode não ficar bonito, mas o usuário não enxerga o código, e sim o resultado. Quanto aos try/catch, eu os acho de extrema importância, senão o programa pega fogo e tu nem nota.
Realizar tratamento de exeções é muito importante, em alguns casos pode ser evitado. como acontece em seu exemplo.
Você poderia verificar se a variável campoCodigoIdiomaLivraria não esta vazia ou nula e emitir uma mensagem para o usuário.
[code] public String doSave() throws Exception{
this.idioma = new Idioma();