【问题标题】:Exception message not being displayed correctly on client computers客户端计算机上未正确显示异常消息
【发布时间】:2011-09-08 10:55:58
【问题描述】:

我目前正在处理的项目是表单设计器(Silverlight 应用程序),其中用户可以将控件从工具箱拖到工作画布​​上,然后在属性窗格中提供其属性(如 Visual Studio 和 Expression Blend)

我们在测试服务器的 IIS 中部署了我们的应用程序,供 QC 部门对其进行测试。有一个错误,其中在不适用的字段(MinHeight 和 MinWidth)中键入“Auto”没有得到正确处理。我们所做的是继续分配这些无效值,然后捕获异常并显示带有异常消息的消息框:

private void SetControlMinWidth(Control control, TextBox setterTextBox, bool isAdvancedControl = false)
{
    try
    {
        double minWidth = !string.IsNullOrEmpty(setterTextBox.Text) ?
               (
                   setterTextBox.Text.Trim().ToUpper() == "AUTO" ? double.NaN : Convert.ToDouble(setterTextBox.Text)
               ) : control.MinWidth;

        control.MinWidth = minWidth;
    }
    catch (Exception ex)
    {
        CustomMessageBox.Show(ex.Message.ToString());
    }
}

正在传递的异常是 ArgumentException,其默认消息是“值不在预期范围内”。部署后,开发人员进行了一些测试,异常处理按预期工作。令人惊讶的是,QC 测试人员看到的消息不是 ArgumentException 的默认消息,而是

[Arg_ArgumentException]
Arguments: 
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60351.0&File=mscorlib.dll&Key=Arg_ArgumentException

有没有人遇到过这种情况,即开发人员计算机显示正确的异常消息,而 QC 测试人员计算机却没有?请记住,开发人员正在测试已部署的应用程序,而不是从 Visual Studio 运行。

【问题讨论】:

    标签: silverlight exception-handling argumentexception


    【解决方案1】:

    我认为调试字符串已从 Silverlight 的最终用户版本中删除。

    这篇文章确实解释了它: http://blogs.msdn.com/b/silverlightws/archive/2008/04/06/getting-full-exceptions-in-silverlight-2-beta-1.aspx

    【讨论】:

    • 好了,伙计!非常感谢。似乎我们最好传递用户友好的错误消息,而不是依赖异常消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多