Если внутри метода возникнет исключение, то будет возвращен Task с исключением
Task ActionAsync
Если внутри метода возникнет исключение, то оно будет проброшено наверх напрямую.
Если мы хотим сохранить общее поведение, то необходимо использовать конструкцию: try { return Task.CompletedTask; } catch (Exception ex) { return Task.FromException(ex); }
AsyncLocal
async Task ActionAsync
В случае, если внутри метода будет задано значение AsyncLocal контейнера, то при выходе из метода оно будет сброшено на родительское значение.
Task ActionAsync
В случае, если внутри метода будет задано значение AsyncLocal контейнера, то при выходе из метода оно не будет сброшено.