Vai al contenuto principale
Tutti i metodi e le proprietà delle interfacce di ABBYY FineReader Engine restituiscono un valore di tipo HRESULT. L’HRESULT (da “result handle”) è un meccanismo per restituire valori di successo, avviso ed errore. Gli HRESULT non sono effettivamente handle a nulla; sono semplicemente valori a 32 bit con diversi fields codificati al loro interno. Un risultato pari a zero indica il successo, mentre un risultato diverso da zero indica un errore. Se la chiamata a un metodo o a una proprietà non è andata a buon fine, il metodo o la proprietà restituisce un codice HRESULT che indica il tipo di errore. Inoltre, fornisce una descrizione più dettagliata dell’errore tramite l’interfaccia IErrorInfo.
Per Windows: fare riferimento alla documentazione COM per una descrizione dettagliata della gestione degli errori.
  • C#. (Solo Windows) I wrapper generati automaticamente per le interfacce COM rilevano gli errori e li convertono in eccezioni standard. Racchiudere una sequenza di metodi di ABBYY FineReader Engine con le istruzioni:
try
{
    ...
}
catch( Exception e )
{
    ...
}
  • C++ con supporto COM nativo (Windows). La tecnologia di supporto COM nativo traduce i codici HRESULT delle funzioni dell’interfaccia in eccezioni di un tipo speciale (_com_error) e utilizza automaticamente le informazioni di IErrorInfo. Pertanto, una sequenza di metodi di FineReader Engine può essere racchiusa nelle istruzioni:
try {
    ...
}
catch (_com_error& e) {
    ...
}
In generale, la gestione degli errori con il supporto COM nativo può essere eseguita nel modo standard previsto per qualsiasi codice C++ che utilizza funzioni che possono generare eccezioni.
  • C++ puro / C++. I metodi e le proprietà dell’interfaccia di FineReader Engine non possono generare eccezioni, ma restituiscono HRESULT. I principali strumenti per gestire questi codici di ritorno sono le macro SUCCEEDED e FAILED. Queste verificano il valore HRESULT e ne determinano il risultato dell’operazione — riuscita o errore. Per ottenere un puntatore all’interfaccia dell’oggetto IErrorInfo, utilizzare le seguenti funzioni API:
    • GetErrorInfo per Windows
    • GetFREngineErrorInfo per Linux e macOS:
wchar_t* GetErrorMessage() {
   IErrorInfo* errorInfo;
   if( GetFREngineErrorInfo( 0, &errorInfo ) == S_OK && errorInfo != 0 ) {
      // Recupera la descrizione dell'errore 
      wchar_t* description;
      errorInfo->GetDescription( &description );
      errorInfo->Release();
      return description;
   } else {
      return L"Unknown error";
   }
}
  • Java (solo Linux e Windows). Vedere Using ABBYY FineReader Engine in Java per indicazioni sulla gestione degli errori in Java.
  • Visual Basic (solo Windows). Gli utenti di Visual Basic possono accedere al codice HRESULT tramite la proprietà Number dell’oggetto Err. Gli altri attributi dell’oggetto Err vengono inizializzati con le informazioni di IErrorInfo. La gestione degli errori viene eseguita tramite l’istruzione On Error. Se non si utilizza l’istruzione On Error Resume Next nel codice, qualsiasi errore di runtime può causare la visualizzazione di un messaggio di errore da IErrorInfo e l’interruzione dell’esecuzione del codice.

Vedi anche

Codici di ritorno standard