0条评论
还没有人评论过~
代码如下:
class Program { static void Test(Func<int, Task> callback) { try { callback.Invoke(1); } catch (Exception ex) { Console.WriteLine(ex.Message);//进不到这里,所以不会打印出异常信息 } } static void Main(string[] args) { Test(async n => { throw new Exception("abc");//这里抛出的异常将捕获不到 await Task.CompletedTask; }); Console.WriteLine("OK"); Console.ReadLine(); } }
请问在这样的场景中,如何捕获回调方法中出现的异常呢?谢谢大神.
少了 Wait()
static void Test(Func<int, Task> callback)
{
try
{
callback.Invoke(1).Wait();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message); //可以打印出异常信息
}
}