Как я могу улучшить этот сценарий повторной попытки исключения?

У меня есть метод веб-службы, который я вызываю, который является сторонним и находится за пределами моего домена. По какой-то причине время от времени веб-служба дает сбой со временем ожидания шлюза. Его прерывистость и вызов к нему сразу после неудачной попытки могут быть успешными.

Теперь у меня осталась дилемма кодирования, у меня есть код, который должен справиться с задачей, но код выглядит как любительский час, как вы увидите ниже.

Это действительно плохой код, или приемлемо, учитывая использование? Если это не приемлемо, как я могу улучшить это?

Пожалуйста, старайтесь сохранять невозмутимое лицо, глядя на него.

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.
                }
            }
        }
    }
}

Ответы на вопрос(10)

Ваш ответ на вопрос