Xcube-Studio / Natsurainko.FluentLauncher

Natsurainko.FluentLauncher A Minecraft launcher designed for Windows 11
https://fluentlauncher.natsurainko.work/
MIT License
290 stars 15 forks source link

Global exception handler #45

Closed gaviny82 closed 1 year ago

gaviny82 commented 1 year ago

实现功能

提供全局异常处理

Close #44

实现方式

注册App.UnhandledException事件

AppDomain.UnhandledException

由于整个项目中没有手动添加AppDomain,应该不用考虑这个问题了,所以异常都会在上面的实现里处理。 如果以后用到AppDomain的话,是不是保留日志记录比较好?

参考:https://learn.microsoft.com/en-us/dotnet/api/system.appdomain?view=net-7.0

gaviny82 commented 1 year ago

效果

image

TODO

gaviny82 commented 1 year ago

仔细想了一下发现AppDomain的这个问题目前没必要考虑,因为暂时没有添加过AppDomain。根据文档的描述,运行可能出错的任务时,可以考虑建立新的AppDomain,避免出错导致整个程序崩溃,所以AppDomain中的错误也可以用同样的方式在MainWindow里展示。

gaviny82 commented 1 year ago

MainWindow加载失败的效果:

image

natsurainko commented 1 year ago

非常棒的实现 不过我还是担心 App.UnhandledException 不能捕获全局的异常