当前位置: 首页 >服务端 > 在.NET Core程序中设置全局异常处理

在.NET Core程序中设置全局异常处理

以前我们想设置全局异常处理只需要这样的代码:

1 AppDomain currentDomain = AppDomain.CurrentDomain;2 currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyExceptionHandler);

但是在.NET Core中并没有AppDomain的相关实现,至少在.NET Core最新的发布版本里没有。

以前我和网友@SillyPGM的讨论,然后我们查看了部分Clr的源代码后发现,在AppContext类里有UnhandledException的实现代码,但是结果又一次失望,最新的代码是14天前提交的。

带着沮丧我去翻看了社区提交的ISSUES 如下:  https://github.com/dotnet/corefx/issues/6398

最后发现了由SamuelEnglard提交的有关AppDomain的解决方案,经过SillyPGM的验证,证明了这个第三方库的有效性。

这个库的原理很简单就是通过反射将AppDomain类的事件字段,然后通过构建ExpressionTree生成Delegate。

原理很简单,但是包含了智慧,以后有什么搞不定的,看看源代码,如果有实现就直接照着他的方案来吧。

大家一起观摩:https://github.com/SamuelEnglard/System.AppDomain  上面有单元测试

当然也不需要把源代码Down下来自己搞,作者给咱们提供了Nuget:  https://www.nuget.org/packages/System.AppDomain/2.0.11

 

 

GitHub:https://github.com/maxzhang1985/YOYOFx  如果觉还可以请Star下, 欢迎一起交流。

.NET Core 和 YOYOFx 的交流群: 214741894 .NET Core跨平台 

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

作者:YOYOFx
来源链接:https://www.cnblogs.com/maxzhang1985/p/5872968.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113034.html

标签:异常处理
分享给朋友:

“在.NET Core程序中设置全局异常处理” 的相关文章

[C#]richtextbox实现行号 2022年05月17日 20:27:54
配置 yum 源的两种方法 2022年05月19日 19:54:29
素数的判断,以及素数的遍历 2022年05月21日 11:41:39
关于设计模式 2022年05月23日 23:02:13
实习篇之关于交际 2022年05月23日 23:11:35
信息系统项目管理案例2 2022年05月24日 22:36:24
Activity的生命周期 2022年05月25日 21:59:10