и 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?

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

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