Есть несколько сообщений, которые спрашивают, какая разница между этими двумя.
(почему я должен даже упоминать об этом...)
Но мой вопрос отличается тем, что я называю "throw ex" в другом методе обработки ошибок, подобном ошибке.
public class Program
{
public static void Main(string[] args)
{
try
{
// something
}
catch (Exception ex)
{
HandleException(ex);
}
}
private static void HandleException(Exception ex)
{
if (ex is ThreadAbortException)
{
// ignore then,
return;
}
if (ex is ArgumentOutOfRangeException)
{
// Log then,
throw ex;
}
if (ex is InvalidOperationException)
{
// Show message then,
throw ex;
}
// and so on.
}
}
Если try & catch
были использованы в Main
, я бы использовал throw;
для восстановления ошибки.
Но в приведенном выше упрощенном коде все исключения проходят через HandleException
Имеет ли throw ex;
тот же эффект, что и вызов throw
при вызове внутри HandleException
?