> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fehlerbehandlung

> Fehlerbehandlung in ABBYY FineReader Engine: HRESULT-Rückgabewerte, Details zu IErrorInfo, C#-try/catch-Muster unter Windows und wie HRESULT-Codes in aussagekräftige Meldungen übersetzt werden.

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.

<Note>
  Für Windows: Eine ausführliche Beschreibung der Fehlerbehandlung finden Sie in der COM-Dokumentation.
</Note>

* 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](/de/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/using-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.

<div id="see-also">
  ## Siehe auch
</div>

[Standardrückgabecodes](/de/fine-reader/engine/api-reference/return-codes)
