我正在尝试编写一个方法,它尝试执行一个操作,但会捕获任何引发的异常。
我的第一次尝试如下:
public static void SafeExecute(Action actionThatMayThrowException) {
try {
actionThatMayThrowException();
} catch {
// noop
}
}
当使用同步操作调用时起作用的是:
SafeExecute(() => {
throw new Exception();
});
然而,当使用异步操作调用时会失败:
SafeExecute(async () => {
await Task.FromResult(0);
throw new Exception();
});
是否有可能编写一个可以处理这两种情况的方法?