и StackTrace будет сброшен в случае броска 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
?