Como posso melhorar esse cenário de nova tentativa de exceção?
Eu estou chamando um método de serviço da web que é de terceiros e está fora do meu domínio. Por alguma razão, de vez em quando, o serviço da web falha com um tempo limite do gateway. Sua intermitência e uma chamada diretamente após uma tentativa fracassada podem ter êxito.
Agora fiquei com um dilema de codificação, tenho um código que deve fazer o truque, mas o código parece uma hora de amador, como você verá abaixo.
Esse código é realmente ruim ou aceitável devido ao uso? Se não é aceitável, como posso melhorá-lo?
Por favor, tente manter um rosto sério enquanto olha para ele.
try
{
MDO = OperationsWebService.MessageDownload(MI);
}
catch
{
try
{
MDO = OperationsWebService.MessageDownload(MI);
}
catch
{
try
{
MDO = OperationsWebService.MessageDownload(MI);
}
catch
{
try
{
MDO = OperationsWebService.MessageDownload(MI);
}
catch
{
try
{
MDO = OperationsWebService.MessageDownload(MI);
}
catch (Exception ex)
{
// 5 retries, ok now log and deal with the error.
}
}
}
}
}