AnalysisWarning.BackgroundException, propriété
Mise à jour : November 2007
Exception Exception levée si une exception se produit pendant l'analyse d'arrière-plan de l'entrée manuscrite.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink.Analysis (dans Microsoft.Ink.Analysis.dll)
Syntaxe
'Déclaration
Public ReadOnly Property BackgroundException As Exception
'Utilisation
Dim instance As AnalysisWarning
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
Valeur de propriété
Type : System.Exception
Exception Exception levée pendant l'analyse d'arrière-plan.
Notes
Si un Exception se produit après un appel à la méthode InkAnalyzerBase.BackgroundAnalyze, l'exception ne peut pas être levée car elle se produit dans un thread différent et il est impossible de l'intercepter. En revanche, dans le gestionnaire d'événements ResultsUpdated, la propriété Status de l'objet ResultsUpdatedEventArgs comporte un objet AnalysisWarning de type BackgroundException dans la propriété Warnings de sa collection. La propriété BackgroundException de cet objet AnalysisWarning contiendra l'exception Exception levée pendant l'analyse d'arrière-plan. En général, vous souhaiterez lever de nouveau cette exception Exception pour qu'elle puisse être interceptée ailleurs dans votre application. À partir de ce point, l'analyseur d'entrée manuscrite est inutilisable et doit être réinstancié.
Exemples
L'exemple suivant affiche un AnalysisWarning, warning, qui est vérifié afin de déterminer s'il est associé à une indication. Si le AnalysisWarning est de type BackgroundException, vous devez essayer d'enregistrer autant d'informations que possible sur l'état du document, puis lever de nouveau l'exception afin qu'elle puisse être interceptée par un gestionnaire d'exceptions. S'il n'existe aucun gestionnaire d'exceptions, un débogueur d'erreur de programme, tel que Dr. Watson, peut être appelé. Le InkAnalyzer devra être réinitialisé après avoir intercepté l'exception.
' Loop through warnings
Dim warning As AnalysisWarning
For Each warning In status.Warnings
Select Case warning.WarningCode
Case Microsoft.Ink.AnalysisWarningCode.Aborted
message = message & "Analysis operation was aborted. "
Case Microsoft.Ink.AnalysisWarningCode.BackgroundException
' This is a fatal warning. Throw an exception.
' First, attempt to save as much document state as possible
' ...
' Rethrow the exception so that it can be caught by an exception
' handler (or if there is no exception handler, a program error
' debugger such as Dr. Watson can be invoked)
Throw (warning.BackgroundException)
Case Microsoft.Ink.AnalysisWarningCode.ConfirmedWithoutInkRecognition
message = message & "Node was confirmed without ink recognition having been performed. "
Case Microsoft.Ink.AnalysisWarningCode.ContextNodeLocationNotSet
message = message & "Node does not have a proper location set. "
Case Microsoft.Ink.AnalysisWarningCode.FactoidCoercionNotSupported
message = message & "Factoid coercion failed "
If (Not warning.AnalysisHint Is Nothing) AndAlso (Not warning.AnalysisHint.Factoid Is Nothing) Then
message = message & "for factoid: " & warning.AnalysisHint.Factoid & ". "
End If
Case Microsoft.Ink.AnalysisWarningCode.FactoidNotSupported
If (Not warning.AnalysisHint Is Nothing) AndAlso (Not warning.AnalysisHint.Factoid Is Nothing) Then
message = message & warning.AnalysisHint.Factoid & " factoid was not respected. "
End If
Case Microsoft.Ink.AnalysisWarningCode.GuideNotSupported
message = message & "Guide was not respected. "
Case Microsoft.Ink.AnalysisWarningCode.AddInkToRecognizerFailed
message = message & "Ink could not be added to the InkRecognizer. "
Case Microsoft.Ink.AnalysisWarningCode.InkRecognizerInitializationFailed
message = message & "The InkRecognizer failed to initialize. "
Case Microsoft.Ink.AnalysisWarningCode.NoMatchingInkRecognizerFound
message = message & "There are no ink recognizers meeting the language or capabilities needed. "
Case Microsoft.Ink.AnalysisWarningCode.LanguageIdNotRespected
message = message & "The language ID set on a stroke did not match the language ID of the InkRecognizer. "
Case Microsoft.Ink.AnalysisWarningCode.PartialDictionaryTermsNotSupported
message = message & "Partial dictionary terms could not be returned from the text recognizer. "
Case Microsoft.Ink.AnalysisWarningCode.TextRecognitionProcessFailed
message = message & "The text recognition process failed. "
Case Microsoft.Ink.AnalysisWarningCode.SetPrefixSuffixFailed
message = message & "The text recognizer was unable to respect either the prefix or suffix. "
If (Not warning.AnalysisHint Is Nothing) AndAlso (Not warning.AnalysisHint.PrefixText Is Nothing) Then
message = message & "Prefix: " & warning.AnalysisHint.PrefixText & ". "
End If
If (Not warning.AnalysisHint Is Nothing) AndAlso (Not warning.AnalysisHint.SuffixText Is Nothing) Then
message = message & "Suffix: " & warning.AnalysisHint.SuffixText & ". "
End If
Case Microsoft.Ink.AnalysisWarningCode.WordlistNotSupported
message = message & "Wordlist was not respected. "
Case Microsoft.Ink.AnalysisWarningCode.WordModeNotSupported
message = message & "Word mode was not respected. "
End Select
' Add node id information
Dim id As Guid
For Each id In warning.GetNodeIds()
message = message & "Id: " & id.ToString() & " "
Next id
' Add hint information
If Not (warning.AnalysisHint Is Nothing) Then
Dim hint As AnalysisHintNode = warning.AnalysisHint
message = message & Environment.NewLine & "Hint information: "
message = message & "AllowPartialDictionaryTerms"
If hint.AllowPartialDictionaryTerms = True Then
message = message & " = True "
Else
message = message & " = False "
End If
message = message & "CoerceToFactoid"
If hint.CoerceToFactoid = True Then
message = message & " = True "
Else
message = message & " = False "
End If
If Not hint.Factoid Is Nothing Then
message = message & "Factoid = " & warning.AnalysisHint.Factoid & " "
End If
If hint.Guide.DrawnBox <> Rectangle.Empty Then
message = message & "Guide Drawn Box = " & hint.Guide.DrawnBox.ToString()
End If
If hint.Guide.WritingBox <> Rectangle.Empty Then
message = message & "Guide Writing Box = " & hint.Guide.WritingBox.ToString()
End If
message = message & String.Format("Guide = ({0}, {1})", _
hint.Guide.Columns, hint.Guide.Rows)
If Not hint.Name Is Nothing Then
message = message & "Name = " & warning.AnalysisHint.Name & " "
End If
If Not hint.PrefixText Is Nothing Then
message = message & "PrefixText = " & warning.AnalysisHint.PrefixText & " "
End If
If Not hint.SuffixText Is Nothing Then
message = message & "SuffixText = " & warning.AnalysisHint.SuffixText & " "
End If
message = message & "WordMode"
If hint.WordMode = True Then
message = message & " = True"
Else
message = message & " = False"
End If
End If
message = message & Environment.NewLine
Next warning
// Loop through warnings
foreach (AnalysisWarning warning in status.Warnings)
{
switch (warning.WarningCode)
{
case Microsoft.Ink.AnalysisWarningCode.Aborted:
message += "Analysis operation was aborted. ";
break;
case Microsoft.Ink.AnalysisWarningCode.BackgroundException:
// This is a fatal warning. Throw an exception.
// First, attempt to save as much doc state as possible
// ...
// Rethrow the exception so that it can be caught by an exception
// handler (or if there is no exception handler, a program error
// debugger such as Dr. Watson can be invoked)
throw(warning.BackgroundException);
case Microsoft.Ink.AnalysisWarningCode.ConfirmedWithoutInkRecognition:
message += "Node was confirmed without ink recognition having been performed. ";
break;
case Microsoft.Ink.AnalysisWarningCode.ContextNodeLocationNotSet:
message += "Node does not have a proper location set. ";
break;
case Microsoft.Ink.AnalysisWarningCode.FactoidCoercionNotSupported:
message += "Factoid coercion failed ";
if (warning.AnalysisHint != null && warning.AnalysisHint.Factoid != null)
{
message += "for factoid: " + warning.AnalysisHint.Factoid + ". ";
}
break;
case Microsoft.Ink.AnalysisWarningCode.FactoidNotSupported:
if (warning.AnalysisHint != null && warning.AnalysisHint.Factoid != null)
{
message += warning.AnalysisHint.Factoid + " factoid was not respected. ";
}
break;
case Microsoft.Ink.AnalysisWarningCode.GuideNotSupported:
message += "Guide was not respected. ";
break;
case Microsoft.Ink.AnalysisWarningCode.AddInkToRecognizerFailed:
message += "Ink could not be added to the InkRecognizer. ";
break;
case Microsoft.Ink.AnalysisWarningCode.InkRecognizerInitializationFailed:
message += "The InkRecognizer failed to initialize. ";
break;
case Microsoft.Ink.AnalysisWarningCode.NoMatchingInkRecognizerFound:
message += "There are no ink recognizers meeting the language or capabilities needed. ";
break;
case Microsoft.Ink.AnalysisWarningCode.LanguageIdNotRespected:
message += "The language ID set on a stroke did not match the language ID of the InkRecognizer. ";
break;
case Microsoft.Ink.AnalysisWarningCode.PartialDictionaryTermsNotSupported:
message += "Partial dictionary terms could not be returned from the text recognizer. ";
break;
case Microsoft.Ink.AnalysisWarningCode.TextRecognitionProcessFailed:
message += "The text recognition process failed. ";
break;
case Microsoft.Ink.AnalysisWarningCode.SetPrefixSuffixFailed:
message += "The text recognizer was unable to respect either the prefix or suffix. ";
if (warning.AnalysisHint != null && warning.AnalysisHint.PrefixText != null)
{
message += "Prefix: " + warning.AnalysisHint.PrefixText + ". ";
}
if (warning.AnalysisHint != null && warning.AnalysisHint.SuffixText != null)
{
message += "Suffix: " + warning.AnalysisHint.SuffixText + ". ";
}
break;
case Microsoft.Ink.AnalysisWarningCode.WordlistNotSupported:
message += "Wordlist was not respected. ";
break;
case Microsoft.Ink.AnalysisWarningCode.WordModeNotSupported:
message += "Word mode was not respected. ";
break;
}
// Add node id information
foreach (Guid id in warning.GetNodeIds())
message += "Id: " + id.ToString() + " ";
// Add hint information
if (warning.AnalysisHint != null)
{
AnalysisHintNode hint = warning.AnalysisHint;
message += Environment.NewLine + "Hint information: ";
message += "AllowPartialDictionaryTerms";
if (hint.AllowPartialDictionaryTerms)
message += " = true ";
else
message += " = false ";
message += "CoerceToFactoid";
if (hint.CoerceToFactoid)
message += " = true ";
else
message += " = false ";
if (hint.Factoid != null)
message += "Factoid = " + warning.AnalysisHint.Factoid + " ";
if (hint.Guide.DrawnBox != Rectangle.Empty)
message += "Guide Drawn Box = " + hint.Guide.DrawnBox.ToString();
if (hint.Guide.WritingBox != Rectangle.Empty)
message += "Guide Writing Box = " + hint.Guide.WritingBox.ToString();
if (hint.Name != null)
message += "Name = " + warning.AnalysisHint.Name + " ";
if (hint.PrefixText != null)
message += "PrefixText = " + warning.AnalysisHint.PrefixText + " ";
if (hint.SuffixText != null)
message += "SuffixText = " + warning.AnalysisHint.SuffixText + " ";
message += "WordMode";
if (hint.WordMode)
message += " = true";
else
message += " = false";
}
message += Environment.NewLine;
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0