Gestión de errores
La API de MapForce devuelve errores de dos formas distintas. Todos los métodos de la API devuelven un elemento HRESULT. Este valor de retorno informa al emisor de la llamada de cualquier fallo durante la ejecución del método. Si la llamada se ha realizado con éxito, el valor de retorno es igual a S_OK. C/C++. Por lo general, los programadores suelen usar HRESULT para detectar errores.
Visual Basic, los lenguajes de programación y otros entornos de desarrollo de alto nivel no dan acceso al programador al HRESULT de retorno de una llamada COM, sino que usan el segundo mecanismo de detección de errores compatible con la API de MapForce, la interfaz IErrorInfo. Si ocurre un error, la API crea un objeto nuevo que implementa la interfaz IErrorInfo. El entorno de desarrollo usa esta interfaz para llenar su propio mecanismo de gestión de errores con la información obtenida.
A continuación describimos en detalle cómo gestionar los errores detectados por la API de MapForce en distintos entornos de desarrollo.
Visual Basic
Una forma común de gestionar errores en Visual Basic es definir un gestor de errores. Este se puede definir con la instrucción Cuando haya erIErrorInfo.rores. Normalmente el gestor muestra un mensaje de error y hace limpieza de código para evitar referencias duplicadas o cualquier tipo de recursos.Visual Basic rellena su propio objeto Err con la información que obtiene de la interfaz IErrorInfo.
Sub Validate() |
JavaScript
La implementación de Microsoft del JavaScript (JScript) ofrece un mecanismo try-catch para gestionar los errores derivados de las llamadas COM. Este mecanismo es muy parecido al enfoque VisualBasic en el sentido de que también se declara un objeto de error que contiene la información necesaria.
function Generate() |
C/C++
C/C++ ofrece un acceos fácil al HRESULT de la llamada COM y a la IErrorInterface.
HRESULT hr; |