Kei*_*ius 5 .net app-config exception-handling winforms
有时在使用默认配置系统的.NET(2.0)WinForm桌面应用程序中,该user.config
文件将被破坏并且无法再加载(当配置系统尝试加载它时,它将抛出一个System.Xml.XmlException
).
抛开"为什么文件首先被破坏"的问题(可能是宇宙射线,或HDD问题,或者你无法控制的其他东西),问题就变成了"怎么能抓住这个异常和做一些有意义的事情吗?
Microsoft的Connect站点有关于此类问题的报告.不幸的是,他们的报告不是很有帮助.
是否有可能捕获源自默认配置系统加载器本身的异常?或者您是否必须推出自己的配置系统才能捕获此类异常?
事实证明你可以捕获这个异常。我需要的提示来自这个问题:
就我而言,(WinForms 应用程序),我的父(启动)表单中的异常处理程序捕获此异常。但我想你也可以使用MyApplication_UnhandledException
处理程序。ApplicationEvents
最重要的是,您需要某种高级“未处理的异常”处理程序来捕获此问题。
此外,您可以查看异常的 InnerException 并查看它的类型是否为System.Configuration.ConfigurationErrorsException
。如果是,那么您可以查看.FileName
此 InnerException 的属性来获取 user.config 文件的完整文件名。
一旦你有了这个,你可以做一些事情 - 尝试检查它的内容以查看它有什么问题,或者(最坏的情况)删除它并重新启动应用程序,以便使用所有默认设置重新创建它。
正如我之前所说,这是一种非常罕见的异常,可能是由系统突然关闭或其他不可控事件(例如断电)引起的。尽管如此,很高兴终于能够对此做点什么。
归档时间: |
|
查看次数: |
2248 次 |
最近记录: |