Acho que isso pode ser um exemplo util. :D
Tipo deletar um arquivo criado ja q deu erro, ou algo assim... Se bem que finally faz isso já, neh ?
brlima
Ou podemos fazer uma tradução da excessao, gerando a mesma excessao com nome diferente… sei lá…
E
EddiE
o problema é que relançar uma exceção dá uma coceira para :? usar essa interrupção como controle de fluxo que não é uma boa prática.
Minha dúvida é: se tenho um método que retorna um int (ou outro tipo) e esse mesmo método verifica o valor da variável e por algum motivo eu queira que ele retorne uma mensagem “o valor não pode ser maior de 12”. Sei que posso fazer retornar -1 para indicar erro, mas e se -1 for um valor de retorno válido? Retornar uma exceção seria errado, mas o qual a melhor prática?
dsiviotti
Poderia ser um registro de log seguido do relançamento da exceção para o método chamador:
publicvoiddostuff() throws IOException{ try{ //riskyIOthing} catch(IOException ex) { //Queroguardarovalordeumadessasvariaveisaiemcima//Agoraquerofazeralgumprocessamentocomessesdadospra//depoiscontinuarlançandoaexcessaosetLogError("Houve um erro aqui, eu não vou tratar, quem chamou que trate!");throwex;} }
Agora, um outro trecho que código que usa aquele método e captura e trata a possível exceção:
try {
fazerRetidada( 10000.0 );
}
catch( SaldoInsuficienteException e ) {
System.out.println( “Saldo Insuficiente para a retirada” );
}
urubatan
eu uso este tipo de coisa as vezes quando não vou tratar a excessão, ou não é competencia daquela classe tratar esta excessão, mas quero fazer um log daquela excessão com variaveis encontradas apenas localmente naquele metodo por exemplo
Rafael_Steil
Colocou bem
Se o log fosse mais superficial, nao teria muito sentido logar em cada try-catch, pois ficaria um monte de codigo redundante pelo sistema, sendo nesse caso mais apropriado deixar para logar no try-catch de mais alto nivel.
Rafael
rodrigousp
Fala sério …
o problema é que relançar uma exceção dá uma coceira para usar essa interrupção como controle de fluxo que não é uma boa prática.
Minha dúvida é: se tenho um método que retorna um int (ou outro tipo) e esse mesmo método verifica o valor da variável e por algum motivo eu queira que ele retorne uma mensagem “o valor não pode ser maior de 12”. Sei que posso fazer retornar -1 para indicar erro, mas e se -1 for um valor de retorno válido? Retornar uma exceção seria errado, mas o qual a melhor prática
Por que retornar uma exceção seria errado ???
Cria uma nova exceção chamado methodXOutOfRange.
quando chamar o método X, dá um surround em methodX e trata a exce~]ao methodXOutOfRange da maneira que você quiser…
Feio é retornar num específico valor do Contra-Domínio, código de erro.
dukejeffrie
Eu conheço um caso onde vc pode querer relançar uma exceção: