我将一个控制台应用程序移植到.NET Core
,我试图替换以下行:
AppDomain.CurrentDomain.UnhandledException += UnhandledException;
在阅读this之后,似乎没有内置的方法来做到这一点。
所以我的问题是是用try/catch
替换整个代码的唯一方法吗?
通过阅读this,似乎还有另一种方法,即继续使用System.AppDomain
,但我似乎找不到这个类/方法。我唯一的猜测是this library,但它明确指出如果可能的话不应该使用它,所以我不想这样做。
2条答案
按热度按时间pzfprimi1#
你是对的,
AppDomain.UnhandledException
或它是模拟will be available only in .Net Core 2.0,所以现在你应该等待或添加额外的try/catch
块。但是,如果您正在使用任务,则可以使用TaskScheduler.UnobservedTaskException
,其中is available from first version为.Net Core
。6l7fqoea2#
这现在起作用了,所以对于任何希望在最新版本的.NET Core(例如.NET 6)中全局处理异常的人来说,这与旧的.NET Framework中使用的代码相同:
如果您的控制台应用程序使用top-level statements,也可以正常工作: