Zum Hauptinhalt springen
Alle Methoden und Eigenschaften der ABBYY FineReader Engine-Schnittstelle geben einen Wert vom Typ HRESULT zurück. HRESULT („result handle“) dient zur Rückgabe von Erfolgs-, Warnungs- und Fehlerwerten. HRESULTs sind tatsächlich keine Handles auf irgendetwas, sondern lediglich 32-Bit-Werte, in denen mehrere Felder codiert sind. Ein Ergebnis von null bedeutet Erfolg, ein Ergebnis ungleich null einen Fehler. Wenn ein Methoden- oder Eigenschaftsaufruf nicht erfolgreich war, gibt die jeweilige Methode oder Eigenschaft einen HRESULT-Code zurück, der den Fehler angibt. Darüber hinaus wird über die IErrorInfo-Schnittstelle eine detailliertere Fehlerbeschreibung bereitgestellt.
Für Windows: Eine ausführliche Beschreibung der Fehlerbehandlung finden Sie in der COM-Dokumentation.
  • C#. (Nur Windows) Automatisch generierte Wrapper für COM-Schnittstellen erkennen Fehler und wandeln sie in Standardausnahmen um. Umschließen Sie eine Folge von ABBYY FineReader Engine-Methoden mit den folgenden Anweisungen:
try
{
    ...
}
catch( Exception e )
{
    ...
}
  • C++ mit Native COM support (Windows). Die Native-COM-support-Technologie übersetzt die HRESULT-Codes von Schnittstellenfunktionen in Ausnahmen eines speziellen Typs (_com_error) und verwendet automatisch Informationen aus IErrorInfo. Daher kann eine Folge von FineReader Engine Methoden durch die folgenden Anweisungen eingeschlossen werden:
try {
    ...
}
catch (_com_error& e) {
    ...
}
Im Allgemeinen kann die Fehlerbehandlung mit Native COM support auf die für C++-Code mit Funktionen, die Ausnahmen auslösen können, übliche Weise erfolgen.
  • Reines C++ / C++. Methoden und Eigenschaften der FineReader Engine-Schnittstelle können keine Ausnahmen auslösen, sondern geben HRESULT-Werte zurück. Die wichtigsten Mittel zur Behandlung dieser Rückgabecodes sind die Makros SUCCEEDED und FAILED. Sie prüfen den HRESULT-Wert und leiten daraus ab, ob der Vorgang erfolgreich war oder fehlgeschlagen ist. Um einen Zeiger auf die Schnittstelle des IErrorInfo-Objekts zu erhalten, verwenden Sie die folgenden API-Funktionen:
    • GetErrorInfo für Windows
    • GetFREngineErrorInfo für Linux und macOS:
wchar_t* GetErrorMessage() {
   IErrorInfo* errorInfo;
   if( GetFREngineErrorInfo( 0, &errorInfo ) == S_OK && errorInfo != 0 ) {
      // Fehlerbeschreibung abrufen 
      wchar_t* description;
      errorInfo->GetDescription( &description );
      errorInfo->Release();
      return description;
   } else {
      return L"Unknown error";
   }
}
  • Java (nur unter Linux und Windows). Siehe Using ABBYY FineReader Engine in Java für Hinweise zur Fehlerbehandlung in Java.
  • Visual Basic (nur unter Windows). Visual-Basic-Benutzer können über die Number-Eigenschaft des Err-Objekts auf den HRESULT-Code zugreifen. Andere Attribute des Err-Objekts werden mit den Informationen aus IErrorInfo initialisiert. Die Fehlerbehandlung erfolgt hier mithilfe der On-Error-Anweisung. Wenn Sie die On Error Resume Next-Anweisung an keiner Stelle in Ihrem Code verwenden, kann jeder auftretende Laufzeitfehler dazu führen, dass eine Fehlermeldung aus IErrorInfo angezeigt wird und die Codeausführung angehalten wird.

Siehe auch

Standardrückgabecodes