2012-01-15 13 views
0

カスタムコントロールを開発していて、コードに必要な主要なテンプレート部分があるとします。コントロールのユーザーがテンプレートをオーバーライドしてその部分が存在しなくなった場合は、どのような例外をスローする必要がありますか?考えてみましょう:Silverlightカスタムコントロールパース例外は...?

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

私はXamlParseExceptionを使うことにしましたが、例外にはパブリックctorがないと考えられました。このために適切な例外の型がありますか?それとも、新しいException()をスローするだけですか?

答えて

1

興味深いことに、Silverlight Toolkitのフレームワークコントロールを含むほとんどのフレームワークコントロールは何もしません。たとえば、AutoCompleteTextBoxを参照してください。コントロールのコンポーネントが存在しない場合は、何もしません。

正確な例外タイプは本当に重要だとは思わないが、誰もそれを明示的にキャッチする可能性は低い。より重要なことは、提供する文字列メッセージが有益であり、欠落しているテンプレートの名前を詳述することです。

+0

ええ、それは私が現在実装しているところです。私は単純な例外をスローしますが、詳細なメッセージを表示します。 – xanadont

+0

それは私にはうれしいですね:-) – ColinE

関連する問題