Saltar al contenido principal
Todos los métodos y propiedades de las interfaces de ABBYY FineReader Engine devuelven un valor de tipo HRESULT. HRESULT (de “result handle”) es una forma de devolver valores de éxito, advertencia y error. En realidad, los HRESULT no son handles de nada; son solo valores de 32 bits con varios campos codificados en el valor. Un resultado igual a cero indica éxito y un resultado distinto de cero indica error. Si una llamada a un método o una propiedad no tuvo éxito, ese método o esa propiedad devuelve un código HRESULT que indica el error. Además, proporciona una descripción más detallada del error a través de la interfaz IErrorInfo.
Para Windows: consulte la documentación sobre COM para obtener una descripción detallada del manejo de errores.
  • C#. (Solo Windows) Los wrappers generados automáticamente para las interfaces COM detectan los errores y los traducen a excepciones estándar. Encierre una secuencia de métodos de ABBYY FineReader Engine entre las siguientes instrucciones:
try
{
    ...
}
catch( Exception e )
{
    ...
}
  • C++ con Native COM support (Windows). La tecnología Native COM support traduce los códigos HRESULT de las funciones de la interfaz en excepciones de un tipo especial (_com_error) y utiliza automáticamente la información de IErrorInfo. Así, una secuencia de métodos de FineReader Engine puede encerrarse entre las instrucciones:
try {
    ...
}
catch (_com_error& e) {
    ...
}
En general, el manejo de errores con Native COM support puede realizarse de la forma estándar para cualquier código C++ que use funciones que puedan generar excepciones.
  • C++ puro / C++. Los métodos y las Propiedades de la interfaz de FineReader Engine no pueden generar excepciones, sino que devuelven HRESULT. Los medios más importantes para controlar estos códigos de retorno son las macros SUCCEEDED y FAILED. Estas evalúan el valor de HRESULT y determinan a partir de él cuál fue el resultado de la operación: éxito o error. Para obtener un puntero a la interfaz del objeto IErrorInfo, use las siguientes funciones de la API:
    • GetErrorInfo para Windows
    • GetFREngineErrorInfo para Linux y macOS:
wchar_t* GetErrorMessage() {
   IErrorInfo* errorInfo;
   if( GetFREngineErrorInfo( 0, &errorInfo ) == S_OK && errorInfo != 0 ) {
      // Obtener descripción del error 
      wchar_t* description;
      errorInfo->GetDescription( &description );
      errorInfo->Release();
      return description;
   } else {
      return L"Unknown error";
   }
}
  • Java (solo para Linux y Windows). Consulte Using ABBYY FineReader Engine in Java para obtener recomendaciones sobre el control de errores en Java.
  • Visual Basic (solo para Windows). Los usuarios de Visual Basic pueden acceder al código HRESULT mediante la propiedad Number del objeto Err. Los demás atributos del objeto Err se inicializan con la información de IErrorInfo. En este caso, el control de errores se realiza mediante la instrucción On Error. Si no usa la instrucción On Error Resume Next en ninguna parte del código, cualquier error en tiempo de ejecución puede hacer que se muestre un mensaje de error de IErrorInfo y se detenga la ejecución del código.

Consulte también

Códigos de retorno estándar