次の方法で共有


AnalysisWarningBase.BackgroundException プロパティ

インクのバックグラウンド分析時に例外が発生した場合にスローされる Exception

名前空間 :  System.Windows.Ink.AnalysisCore
アセンブリ :  IACore (IACore.dll 内)

構文

'宣言
Public ReadOnly Property BackgroundException As Exception
'使用
Dim instance As AnalysisWarningBase
Dim value As Exception

value = instance.BackgroundException
public Exception BackgroundException { get; }
public:
property Exception^ BackgroundException {
    Exception^ get ();
}
/** @property */
public Exception get_BackgroundException()
public function get BackgroundException () : Exception

プロパティ値

型 : System.Exception
バックグラウンド分析時にスローされた Exception

解説

InkAnalyzerBase.BackgroundAnalyze の呼び出しの後に Exception が発生した場合、この例外は別のスレッドで発生しており、キャッチする方法がないため、例外をスローすることはできません。代わりに、ResultsUpdated イベント ハンドラで、ResultsUpdatedEventArgs オブジェクトの Status プロパティでは、その Warnings コレクションに型 BackgroundExceptionAnalysisWarningBase オブジェクトが含められます。この AnalysisWarningBase オブジェクトの BackgroundException プロパティには、バックグラウンド分析時にスローされた Exception が含められます。通常、この Exception を再度スローして、アプリケーション内の他の場所でキャッチできるようにすることができます。

次の例に、ヒントに関連付けられているかどうかを調べるためにチェックされる AnalysisWarningBase、warning を示します。AnalysisWarningBase の型が BackgroundException の場合、できるだけ多くのドキュメント状態を保存し、例外を再度スローして例外ハンドラによりキャッチできるようにします。例外ハンドラが所定の位置にない場合でも、ワトソン博士などのプログラム デバッガを呼び出すことができます。InkAnalyzerBase は、例外をキャッチした後に再度初期化する必要があります。

If Not (warning.AnalysisHint Is Nothing) Then

    Dim hint As ContextNodeBase = warning.AnalysisHint
    message = message & Environment.NewLine & "Hint information: "
    message = message & "AllowPartialDictionaryTerms"
    If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms) Then
        message = message & " = " & _
            hint.GetPropertyData( _
                PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms).ToString()
    Else
        message = message & " = False "
    End If
    message = message & "CoerceToFactoid"
    If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid) Then
        message = message & " = " & _
            hint.GetPropertyData( _
                PropertyGuidsForAnalysisHintsBase.CoerceToFactoid).ToString()
    Else
        message = message & " = False "
    End If
    If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
        message = message & "Factoid = " & _
            warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) & " "
    End If
    If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide) Then
        Dim theInkRecognizerGuideBase As InkRecognizerGuideBase = _
            CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Guide), _
                  InkRecognizerGuideBase)

        message += "Guide Drawn Box = {" & theInkRecognizerGuideBase.DrawnBoxLeft.ToString() _
                                      & ", " & theInkRecognizerGuideBase.DrawnBoxTop.ToString() _
                                      & ", " & theInkRecognizerGuideBase.DrawnBoxRight.ToString() _
                                      & ", " & theInkRecognizerGuideBase.DrawnBoxBottom.ToString() _
                                      & ")"

        message &= "Guide Writing Box = {" & theInkRecognizerGuideBase.WritingBoxLeft.ToString() _
                                        & ", " & theInkRecognizerGuideBase.WritingBoxTop.ToString() _
                                        & ", " & theInkRecognizerGuideBase.WritingBoxRight.ToString() _
                                        & ", " & theInkRecognizerGuideBase.WritingBoxBottom.ToString() _
                                        & ")"

        message = message & String.Format("Guide = ({0}, {1})", _
             theInkRecognizerGuideBase.Columns, theInkRecognizerGuideBase.Rows)

    End If

    If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name) Then
        message = message & "Name = " & _
            CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Name), String) _
            & " "
    End If

    If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then
        message = message & "PrefixText = " & _
            CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText), String) _
            & " "
    End If

    If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then
        message = message & "SuffixText = " & _
            CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText), String) _
            & " "
    End If

    message = message & "WordMode"
    If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode) Then
        message = message & " = " & _
            CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode), String)
    Else
        message = message & " = False"
    End If
End If
if (warning.AnalysisHint != null)
{
    ContextNodeBase  hint = warning.AnalysisHint;
    message += Environment.NewLine + "Hint information: ";
    message += "AllowPartialDictionaryTerms";

    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms))
        message += " = " +
            ((bool)hint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms)).ToString();
    else
        message += " = false ";

    message += "CoerceToFactoid";
    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid))
        message += " = " +
            ((bool)hint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.CoerceToFactoid)).ToString();
    else
        message += " = false ";

    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid))
        message += "Factoid = " + 
            (string) warning.AnalysisHint.GetPropertyData(
            PropertyGuidsForAnalysisHintsBase.Factoid) + " ";

    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide))
    {
        InkRecognizerGuideBase theInkRecognizerGuideBase = 
            (InkRecognizerGuideBase) hint.GetPropertyData(
            PropertyGuidsForAnalysisHintsBase.Guide);

        message += "Guide Drawn Box = {" + theInkRecognizerGuideBase.DrawnBoxLeft.ToString()
                                  + ", " + theInkRecognizerGuideBase.DrawnBoxTop.ToString()
                                  + ", " + theInkRecognizerGuideBase.DrawnBoxRight.ToString()
                                  + ", " + theInkRecognizerGuideBase.DrawnBoxBottom.ToString() 
                                  + ")";

        message += "Guide Writing Box = {" + theInkRecognizerGuideBase.WritingBoxLeft.ToString()
                                    + ", " + theInkRecognizerGuideBase.WritingBoxTop.ToString()
                                    + ", " + theInkRecognizerGuideBase.WritingBoxRight.ToString()
                                    + ", " + theInkRecognizerGuideBase.WritingBoxBottom.ToString()
                                    + ")";  

    }
    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name))
        message += "Name = " +
            (string) warning.AnalysisHint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.Name);

    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText))
        message += "PrefixText = " + 
            (string) warning.AnalysisHint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.PrefixText) + " ";
    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText))
        message += "SuffixText = " + 
            (string) warning.AnalysisHint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.SuffixText) + " ";
    message += "WordMode";

    if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode))
        message += " = " +
            ((bool) hint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.WordMode)).ToString();
    else
        message += " = false";
}

プラットフォーム

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

AnalysisWarningBase クラス

AnalysisWarningBase メンバ

System.Windows.Ink.AnalysisCore 名前空間

InkAnalyzerBase.BackgroundAnalyze