Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho me debruçado sobre o OpenPop e achando muito maneiro. No momento me deparei com algo que não tenho entendido bem.
Nos meus métodos uso o try cath... ate então sem problemas.
Adicionei o OpenPop fiz as devidas referencias e foram reconhecidas de boa.
Em um método da camada de dados adicionei um cath com PopServerNotFoundException para ser referencia quando o servidor de e-mail não estive disponível, ele funciona bem mas só ate ele mesmo.
Quando a exceção ocorre o PopServerNotFoundException pega a exceção e deveria repassar, pelo throw que incluir gerando outro PopServerNotFoundException, para ser pego pelo cath do método anterior e ai ta o problema, o cath anterior não reconhece e pula para o Exception genérico.
Alguém sabe o que estou fazendo de errado...
>
Use um catch com Exception normal e defina o tipo.
Ex:
Catch (Exception e)
{
if(typeof(e) is PopServerNotFoundException)
{}
}
Ola! KhaosDoctor.
Como de costume sua dica foi muito eficiente em meu processo de aprendizado.
Tentei realizar o codigo que indicou. Em primeira instancia nao funcionou.
Catch (Exception e)
{
if(typeof(e) is PopServerNotFoundException)
{}
}
Informava o seguinte erro.
"The type or namespace name 'e' could not be found (are you missing a using directive or an assembly reference?)"
Entao aproveitei a dica e revisei assuntos de typeof, is, getType() e equal etc...
e montei da seguinte maneira
catch (Exception e)
{
if ( e.GetType() == typeof(PopServerNotFoundException))
{
throw new PopServerNotFoundException("Nao há conexão com o servidor no momento. Tente mais tarde!", e);
}
throw;
}.No processo identifiquei uma falta de referencia ao namespace do pop3. Achei que fosse esse o motivo do primeiro modo nao funcinar.
Para tirar a duvida, apos testar esta forma e ter dado corretamente, testei a primeira novamente e o erro se repetio.
Bom agradeço sua dica e espero ter contribuido, de alguma forma tambem, neste entendimento.
Agradeço desde já a atençao dispensada.
Use um catch com Exception normal e defina o tipo.
Ex:
Catch (Exception e)
{
if(typeof(e) is PopServerNotFoundException)
{}
}