estou utilizando commons mail apache para enviar email, so que esta lançando uma exceção que não estou conseguindo tratar com EmailException, vejam execeção abaixo:
Ve da onde ela vem o põe o pai de todos no catch()…
tipo assim:
catch(Throwablet){}
E
Edson_Bernardo_dos_S
essa exceção mostraria para mim o email inválido
como ficaria o catch com Throwable ?
A
aloha
ahhhh entendi…
bom, vc tem que fazer catch(SendFailedException sfe)
huehuehuee foi mals ai nao tinha entendido
A
andrestrindade
Por que Throwable ?
Eu faria assim:
Try{
//Suas instruções
}
catch(Exceptione){
//TratamentodoerroAQUI
}
Acho interessante tratar Exception e não SendFailedException, porque se der outra exception seu código estará defensivo.
Mas tb podes tratar a SendFailedException
vai tratando tudo que achar necessário antes do erro geral.
A
aloha
andrestrindade:
Por que Throwable ?
Eu faria assim:
Try{
//Suas instruções
}
catch(Exceptione){
//TratamentodoerroAQUI
}
Acho interessante tratar Exception e não SendFailedException, porque se der outra exception seu código estará defensivo.
Mas tb podes tratar a SendFailedException
Bom depende se ele quer identificar qual é o erro exatamente, tem que tratar com a exception específica e não uma genérica… Foi isso que entendi que ele tinha perguntado…
Se para ele tanto faz o erro que acontecer, aí sim, mete um Throwable que é o pai de todos e pronto…
A
andrestrindade
Tá, mas o throwable não vai tratar o erro… Se for web por exemplo, o usuário vai se deparar com o erro, se não for “jogado pra um tratamento” não é ?
E
Edson_Bernardo_dos_S
eu preciso pegar o adress mail que deu erro e jogar para cima
mas a classe EmailException não me possibilita isso, tentei com Throwable tambem nao deu
teria de ser SendFailedException mas nao consigo,
não sei se e limitação de commons Email, por isso to aqui
pedindo ajuda da galera, algum de nos pode ja ter se deparado
com esse problema e ter resolvido de alguma forma.
O que você está fazendo parece estar certo, se der um throws SendFailedException no método é pra subir essa exceção…
Coloca seu código aí fazendo favor…
E
Edson_Bernardo_dos_S
olha o codigo
try{email.setDebug(true);email.setHostName(servidor);email.setSmtpPort(Integer.parseInt(porta));email.setAuthenticator(newDefaultAuthenticator(remetente,senha));email.setSSL(false);email.setTLS(false);email.setSubject(titulo);email.setMsg(mensagem);email.setFrom(remetente);email.setBounceAddress(remetente);email.send();paginacaoEmail(colecao,tipoPessoa,titulo,"");}catch(EmailExceptione){thrownewNegocioException("Operação Inválida - Não foi possivel enviar os emails contate o administrador");}
com commons mail sou obrigado a lançar EmailException eu nao consigo lançar outra exceção a nao ser Throwable >> Exception >> EmailException
Obs. com email exception e nao encontrei como jogar pra cima Invalid adress.
A
aloha
Você tem que ver que Invalid Adress é apenas a mensagem dentro do SendFailedException…
Eu faria diferente… Nesse seu método de envio de email eu não colocaria try catch, apenas throws, o eclipse faz isso para você…
Na chamada desse método eu colocaria um try catch…
try{enviaEmail();}catch(Throwablet){// uma validação qualquer ou lança pra cima isso ainda como vc fezthrownewNegocioException("Operação Inválida - Não foi possivel enviar os emails contate o administrador");}
E
Edson_Bernardo_dos_S
ta mas como eu pego o endereço de email inválido.
porque esta dando a exceção os emails nao são passados
para no email que o sevidor nao aceitou por ter
um dominio inválido.
eu queria retornar esse email para usuario para ele arrumar
eu tirar da lista e enviar novamento o email
A
aloha
Eu acho que via exception você não vai conseguir qual o email exato que deu erro para enviar…
de onde veio isso? Este email que está dando erro?
E
Edson_Bernardo_dos_S
e a exception que esta sendo lançada e nao tradada
eu copiei do console para postar
debug e do commons mail mostra o que acontece
no console.
a exceção Invalid adress acontece eu so não consigo tratar,
se coloco catch com a classe SendFailedException o eclipse
diz que a exceção nunca vai acontecer, mas ela acontece.
no commons Mail essa parte de exceção e meio engessada
ao que me parece pq na documentação fala que
EmailException >> Exception >> Thowable, esta exceção
que quero lançar não esta nesta arvore.
A
aloha
e a SMTPAddressFailedException? consegue lançar?
E
Edson_Bernardo_dos_S
tambem não consigo, diz que nunca vai acontecer tb.