То, как эти «переписанные» на самом деле обрабатываются компилятором и проявляется скомпилированным кодом, может отличаться от того, что я подразумевал, но примерно эквивалентно на функциональном уровне.
имаю чтоasync Task
Исключения могут быть обнаружены:
try { await task; }
catch { }
в то время какasync void
не может, потому что этого нельзя ожидать.
Но почему это когда асинхронныйзадача не ожидается (так же, как асинхронныйнедействительным один)Exception
глотается, в то время какнедействительнымодин вылетает приложение?
гость: ex();
Называется:
async void ex() { throw new Exception(); }
async Task ex() { throw new Exception(); }