Исключение синтаксического анализа пользовательского элемента управления Silverlight должно быть ...? - PullRequest
0 голосов
/ 16 января 2012

Допустим, вы разрабатываете пользовательский элемент управления, и есть ключевая часть шаблона, которая требуется вашему коду.Если пользователь вашего элемента управления переопределяет шаблон так, что деталь больше не существует, то какое исключение следует выдать?Рассмотрим:

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

Я полагал, что использование XamlParseException было хорошим выбором, но это исключение не имеет публичного ctor.Для этого есть подходящий тип исключения или я должен просто сгенерировать новое Exception ()?

1 Ответ

1 голос
/ 16 января 2012

Интересно, что большинство элементов управления фреймворком, в том числе из Silverlight Toolkit, ничего не делают. См., Например, AutoCompleteTextBox , где, если компоненты элемента управления отсутствуют, просто ничего не делает!

Я не думаю, что точный тип исключения действительно имеет значение, вряд ли кто-то явно его поймает. Что более важно, так это то, что предоставленное вами строковое сообщение является информативным и содержит подробное название отсутствующего шаблона.

...