В моем проекте Azure Functions 2.x у меня есть часть функции, блок try-catch
без finally
, который более или менее выглядит следующим образом.
Dictionary<string, int> varDict = null;
Tuple<string, DateTime> varTupl = null;
try
{
varDict = await Core.GetDict(lcLat.Value, lcLong.Value);
varTupl = await Core.GetTupl(lcLat.Value, lcLong.Value);
}
catch (AggregateException ae)
{
ae.Flatten().Handle(ex =>
{
// `log` is an ILogger, the standard Azure Functions passed param
log.LogError(ex, ""); // Writes the ex's error
Debug.WriteLine(""); // Writes the ex's error
// the written content is ommited for readability sake
// But will be shown below
return true;
});
}
catch (Exception ex)
{
// Does exactly like Handle() Does
}
if(varDict != null && varTupl != null)
{
// The Code won't go here, and always return HTTP 500 Instead
}
else
{
// Here neither
}
Run
Сам метод является async Task<IActionResult>
, с Core
как класс static public
, содержащий GetDict()
и GetTupl()
методы, каждый из них также является static async Task<T>
со своим соответствующим T
возвращаемым типом и оба неу него не может быть блока try-catch
, только using
(которые не должны вызывать никаких исключений, верно?)
Проблема в том,даже если (я предполагаю) возникшие исключения затем всплыли в моем блоке try-catch
, даже когда мой блок catch
выполняет печать исключения с моим форматированием из блока catch
, как показано на скриншоте, мои функции Azure продолжают возвращатьсяОшибка HTTP 500, пропуская оставшуюся часть кода после блока try-catch
Что я пробовал
- Отключите параметры отладки «Просто мой код» в моем Visual Stuido 2017
- Добавление
AggregateExceptions
, до этого ловится только на Exception
- Свести AggregateException до
Handle()
it
Это часто встречается в локальной среде разработки, или я просто все неправильно обрабатываю?
Кроме того, окно вывода сохраняетраспечатывать что-то вроде этого и это даже в состоянии ожидания (пока конечная точка HTTP не вызывается, просто запустите в режиме отладки, ожидая вызова в режиме ожидания)) это то, что меня беспокоит?те, которые даже связаны с моей проблемой