【问题标题】:Silverlight custom control parse exception should be ...?Silverlight 自定义控件解析异常应该是...?
【发布时间】:2012-01-16 06:12:26
【问题描述】:

假设您正在开发一个自定义控件,并且您的代码需要一个关键模板部分。如果您的控件的用户覆盖了模板,使得该部分不再存在,那么应该抛出什么异常?考虑:

public override void OnApplyTemplate()
{
    base.OnApplyTemplate();
    var grid = GetTemplateChild("MySpecialGridPart") as Grid;
    if (grid == null)
        throw new WhatExceptionGoesHere();
}

我认为使用 XamlParseException 是一个不错的选择,但该异常没有公共 ctor。是否有合适的异常类型或者我应该抛出新的异常()?

【问题讨论】:

    标签: silverlight custom-controls


    【解决方案1】:

    有趣的是,大多数框架控件,包括 Silverlight Toolkit 中的控件,什么都不做。例如,参见AutoCompleteTextBox,如果控件的组件不存在,则什么都不做!

    我认为确切的异常类型并不重要,不太可能有人会明确地捕捉到它。更重要的是您提供的字符串消息是信息丰富的,详细说明了缺少的模板的名称。

    【讨论】:

    • 是的,这就是我目前的实施情况;我只是抛出一个简单的异常,但带有详细的消息。
    猜你喜欢
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 2021-09-09
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多