我已经创建了许多Silverlight应用程序,用于各种MS系统,从CRM 2011到SharePoint。
申请并不完美,我会第一个承认这一点,有时会出错。我的所有应用程序都已显示错误:
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
(...)
UIDispatcher.Invoke(() => ARP.DynamicsCRM2011.Silverlight.GlobalHelper.Controls.MessageWindow.ShowMessage(e.ExceptionObject.Message));
(...)
}
然而,几乎总是,最终用户不会安装Silverlight开发人员SDK,并且随后只会收到一个通用的
“调试资源字符串不可用”
消息
消息通常会包含一些非常基本的异常形式,但这并不理想。我也知道我从错误中丢失了一个正确的堆栈跟踪(当然,这很容易修复)。
我正在考虑重写异常处理代码,以显示一个通用的“出现问题,请重试消息”,以及一个额外的“显示日志”按钮,以显示所有异常信息和堆栈跟踪。
然而,我的问题是…我应该如何处理那些缺失的资源字符串?如果出现问题,我希望获得尽可能多的信息,但我不能要求我的用户都安装开发人员SDK。
在这种情况下,最好的行动方案是什么?