Я пытаюсь написать метод, который пытается выполнить действие, но проглатывает все возникающие исключения.
Моя первая попытка следующая:
public static void SafeExecute(Action actionThatMayThrowException) {
try {
actionThatMayThrowException();
} catch {
// noop
}
}
Что работает при вызове с синхронным действием:
SafeExecute(() => {
throw new Exception();
});
Однако сбой при вызове с асинхронным действием:
SafeExecute(async () => {
await Task.FromResult(0);
throw new Exception();
});
Можно ли написать метод, который обрабатывает оба сценария?