我的 Program.cs 中的 .net core 3.1 有一个工作人员服务,我有以下代码
public static void Main(string[] args)
{
try
{
CreateHostBuilder(args).Build().Run();
}
catch(Exception ex)
{
Handler(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个工人阶级如下
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);
}
}
Run Code Online (Sandbox Code Playgroud)
如果 Task.Delay 首先执行,然后第二次迭代的 GetData() 方法中发生任何异常,则 Main 方法中的 try catch 不会捕获该异常。我怎样才能在我的主要方法中捕获这些异常?