try
{
sequChildWindow.Show();
}
catch (ArgumentException e3)
{
}
catch (Exception e2)
{
}
代码如上,当运行完sequChildWindow.Show();后就会弹出如图所示的框,catch也抓不到错误。求指教。谢谢!
确认异常是在 sequChildWindow.Show(); 中发生的吗? sequChildWindow.Show(); 中有异步操作吗?
运行完这句就直接进入app.xaml.cs的异常处理程序了。sequChildWindow中我加入了DataGrid控件,内容是与后台绑定的,应该是有异步操作,但是单步看也看不到的。
@博客园的初学者: 在异步操作中捕捉一下异常
@dudu:
如何单步异步操作呀?这个是单步sequChildWindow的量,你帮忙看下那个可能有问题呢?谢谢
@dudu:
@博客园的初学者: 我对这个也没经验
@dudu: 在它相关的量的操作地方都用了catch,也没有抓到,经确定没有异步操作,这个问题太恼火了。不过还是谢谢你!
你的catch貌似就有问题。
catch (Exception ex)
{
MessageBox.Show(ex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
这样写也抓不到错误,这个错误没有抓到,程序就直接进入app.xaml.cs中的异常处理了
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
// 如果应用程序是在调试器外运行的,则使用浏览器的
// 异常机制报告该异常。在 IE 上,将在状态栏中用一个
// 黄色警报图标来显示该异常,而 Firefox 则会显示一个脚本错误。
if (!System.Diagnostics.Debugger.IsAttached)
{
// 注意: 这使应用程序可以在已引发异常但尚未处理该异常的情况下
// 继续运行。
// 对于生产应用程序,此错误处理应替换为向网站报告错误
// 并停止应用程序。
e.Handled = true;
Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
}
}
解决了,是因为DataGrid中绑定控件的一些默认参数设置有误导致的,是绑定错误。这种错误调试不了,catch也抓不着,只有挨着看代码才能找出。谢谢各位的热心回答。
具体说说错在哪了呀 哥们