Добавление к ответу Дугласа .
Улавливайте исключения только в том случае, если вы можете сделать что-то значимое с ними, и вы можете управлять ими на этом уровне.
Task.FromException
в основном просто помещает исключение в задачу, которую вы обычно возвращаете. Однако в этом случае Async Await Pattern уже делает это для вас. Т.е. если вы просто дадите ему сбоить, то исключение все равно будет помещено в задачу, поэтому в вашем коде, по-видимому, нет реальной причины что-либо ловить.
Единственное подходящее место, о котором вы должны подумать о перехвате исключений, - это async void
, так как они выполняются незамеченными и могут вызывать проблемы при возникновении исключения