Разрыв внутри асинхронных методов без разрыва внутри ловит попытки - PullRequest
0 голосов
/ 08 октября 2018

Я прочитал много тем, в которых описан способ исключения исключений первого шанса в методах async - «Включить все исключения CLR Runtime» в отладчике Visual Studio.Проблема в том, что это приводит к непреднамеренному побочному эффекту взлома внутри каждого try/catch, что еще больше усложняет отладку.При поиске ответов на эту проблему все они указали «Отключить все исключения CLR Runtime» в отладчике Visual Studio.

Есть ли способ исправить одну из этих проблем, не вызывая другую?

Я знаю, что существует множество особых способов обработки try/catch исключений внутри Задач, но я надеюсь, что есть хоть какой-то компромисс.

Пример кода:

static void Main() {
    try {
        // When all CLR exceptions are enabled, we end up breaking here.
        throw new Exception();
    } catch { }
    AsyncMethod().GetAwaiter().GetResult();// or .Wait()
}

static async Task AsyncMethod() {
    // When all CLR exceptions are disabled, we end up breaking in Main.
    // (No matter how deep the async calls go)
    throw new Exception();
}

Что странно, несколько месяцев назад такой проблемы не было.async методы ломались при первом шансе, а исключения в try/catch не ломались.Я запутался, как тогда все работало нормально.

...