Silverlight自定义控件解析异常应该是......?

时间:2012-01-15 21:44:58

标签: silverlight custom-controls

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

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

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

1 个答案:

答案 0 :(得分:1)

有趣的是,大多数框架控件,包括来自Silverlight Toolkit的框架控件都不做任何操作。例如,请参阅AutoCompleteTextBox,如果控件的组件不存在,则不执行任何操作!

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