有时,在不可重现的情况下,我的WPF应用程序崩溃而没有任何消息.应用程序立即关闭.
实现全局Try/Catch块的最佳位置在哪里.至少我必须实现一个消息框:"抱歉给您带来不便......"
我的WPF应用程序包含一个主窗口,该窗口又有一个子窗口.
如果我让子窗口打开FolderBrowserDialog,我得到一个System.ComponentModel.Win32Exception(WindowsBase.dll中出现'System.ComponentModel.Win32Exception'类型的第一次机会异常).更具体地说,这在关闭对话框之后以及子窗口再次获得焦点(?)时发生.问号是存在的,因为我没有成功捕获异常所以我不是100%肯定.但在视觉上,就是它何时发生.如果在关闭对话框后子窗口具有焦点,则在窗口失去焦点并重新获得焦点后发生异常.
如果我将打开folderBrowserDialog的代码移动到主窗口,则不会发生这种情况.***编辑:现在它也会从主窗口崩溃程序.
为什么我会得到这个例外?怎么了?如何解决它(除了将其移动到主窗口)?
这是打开对话框的代码; 没什么特别的 删除了异常代码.
FolderBrowserDialog dlg = new FolderBrowserDialog();
DialogResult result = dlg.ShowDialog();
if (result == DialogResult.OK)
selDir = dlg.SelectedPath;
Run Code Online (Sandbox Code Playgroud)
我正在使用VS2010,.Net 4.