Kir*_*kov 21 .net wpf exception swallowed-exceptions
我开发了一个WPF应用程序,当我在调试模式下启动它时,我在输出中看到以下内容:
'WpfApplication1.vshost.exe'(Managed(v2.0.50727)):已加载'C:\ WINDOWS\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll',已加载符号.System.Deployment.dll中发生类型为"System.Deployment.Application.InvalidDeploymentException"的第一次机会异常附加信息:未设置应用程序标识.
如果我在另一个WPF应用程序中使用此应用程序中的控件,则输出中有7个此类消息.不过,该应用程序运行正常.
你能解释一下抛出这些异常的原因吗?我发现该方法ApplicationDeployment.get_CurrentDeployment引发了它们.在MSDN中写道,当您"试图从非ClickOnce应用程序调用此静态属性时"出现此异常.我无法理解它的含义.
我发现类似的帖子InvalidDeploymentException - 没有设置应用程序标识但是没有这个问题的答案.
Cod*_*ray 43
这是一个"第一次机会异常",这意味着调试器只是通知您抛出了异常,而不是那个未处理的异常.
.NET Framework在内部抛出并捕获该异常 - 调试器告诉您它出现在某些代码中System.Deployment.dll.尝试访问用户/网络信息时会引发异常,但底层代码在异常发生时捕获异常并自动恢复执行.你无能为力,它相对无害.
您很可能正在尝试检索当前用户的AppData路径,在这种情况下,Framework需要确定您的应用程序是普通应用程序还是ClickOnce应用程序才能返回正确的路径.如果您是ClickOnce应用程序,则只返回正确的数据.否则,抛出一个异常,该异常被框架捕获,并假设您的应用程序不是 ClickOnce应用程序,导致返回标准用户路径.
在应用程序运行时会抛出并处理许多异常.除非他们没有得到处理,否则没有坏处.如果这确实让您感到烦恼,您可以自定义调试器通知您的异常.例如:
| 归档时间: |
|
| 查看次数: |
17472 次 |
| 最近记录: |