Freigeben über


AnalysisWarningBase.BackgroundException-Eigenschaft

Die Exception, die bei einer Ausnahme während der Hintergrundanalyse von Freihand ausgelöst wird.

Namespace:  System.Windows.Ink.AnalysisCore
Assembly:  IACore (in IACore.dll)

Syntax

'Declaration
Public ReadOnly Property BackgroundException As Exception
'Usage
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

Eigenschaftenwert

Typ: System.Exception
Die Exception, die während der Hintergrundanalyse ausgelöst wurde.

Hinweise

Wenn nach einem Aufruf von InkAnalyzerBase.BackgroundAnalyze eine Exception auftritt, kann sie nicht ausgelöst werden, da sie in einem anderen Thread auftritt und sie nicht abgefangen werden kann. Im ResultsUpdated-Ereignishandler gibt es stattdessen in der Status-Eigenschaft des ResultsUpdatedEventArgs-Objekts ein AnalysisWarningBase-Objekt vom Typ BackgroundException in der Warnings-Auflistung. Die BackgroundException-Eigenschaft dieses AnalysisWarningBase-Objekts enthält dann die Exception, die während der Hintergrundanalyse ausgelöst wurde. Im Allgemeinen ist es dann nützlich, diese Exception erneut auszulösen, damit sie an einer anderen Stelle der Anwendung abgefangen werden kann.

Beispiele

Im folgenden Beispiel wird ein AnalysisWarningBase-Objekt mit dem Namen warning gezeigt, das auf Hinweise überprüft wird. Wenn das AnalysisWarningBase-Objekt vom Typ BackgroundException ist, sollten Sie versuchen, den Dokumentzustand so weitgehend wie möglich zu speichern, und die Ausnahme dann erneut auslösen, damit sie von einem Ausnahmehandler abgefangen werden kann. Auch wenn kein Ausnahmehandler vorhanden ist, kann ein Programmfehlerdebugger wie beispielsweise Dr. Watson aufgerufen werden. Das InkAnalyzerBase-Objekt muss nach dem Abfangen der Ausnahme reinitialisiert werden.

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";
}

Plattformen

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

AnalysisWarningBase-Klasse

AnalysisWarningBase-Member

System.Windows.Ink.AnalysisCore-Namespace

InkAnalyzerBase.BackgroundAnalyze