Как повторно сгенерировать отловленное исключение? - CodeHelper

Как повторно сгенерировать отловленное исключение?

1

Пример кода:

private void LoadPreview()          
{
    try
    {
        ActionMessage message = new ActionMessage {Action = "LoadPreview"};
        message.Send(this);
    }              
    catch(Exception e)
    {
        if (e.InnerException is FileNotFoundException)
            MessageBox.Show(e.Message);
        else // вот тут и надо сгенерировать повторно
    }
}

Лучший ответ:

0
catch(Exception e)
{
    if (e.InnerException is FileNotFoundException)
        MessageBox.Show(e.Message);
    else 
    {
        throw e; // Можно так...              
        throw;   // ...или так.      
    }          
}

Новые ответы


1

При использовании throw; StackTrace будет включать метод, который сгенерировал исключение, а при throw e; стек вызовов оборвется на том методе, который его отловил.

Ссылка по теме (на английском)


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.