我的 Program.cs 中的 .net core 3.1 中有一个工作人员服务我有以下代码
public static void Main(string[] args)
{
try
{
CreateHostBuilder(args).Build().Run();
}
catch(Exception ex)
{
Handler(ex);
}
}
还有一个工人阶级如下
public class Worker : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken Token)
{
do
{
if(condition)
{
await _test.GetData();
}
await Task.Delay(500,Token);
}
while (!Token.IsCancellationRequested);
}
}
如果 Task.Delay 首先执行,然后在第二次迭代中 GetData() 方法中发生任何异常,则它不会被我的 Main 方法中的 try catch 捕获。我怎样才能让这些异常被我的主要方法捕获?