Gestion d'erreur
L’API de MapForce renvoie les erreurs de deux manières différentes. Chaque méthode API renvoie un HRESULT. Cette valeur de renvoi informe l’appelant sur les défaillances pendant l’exécution de la méthode. Si l’appel a réussi, la valeur de renvoi est égale à S_OK. Les programmeurs C/C++ utilisent généralement HRESULT pour détecter des erreurs.
Visual Basic, les langages de scripts, et d’autres environnements de développement de haut niveau ne donnent pas accès au HRESULT de renvoi d’un appel COM. Ils utilisent le deuxième mécanisme de communication de l’erreur pris en charge par l’API de MapForce, l’interface IErrorInfo. Si une erreur se produit, l’API crée un nouvel objet qui met en œuvre l’interface IErrorInfo. L’environnement de développement prend cette interface et remplit son propre mécanisme de communication d’erreur à base des informations fournies.
Le texte suivant décrit comment gérer les erreurs survenues depuis l’API de MapForce dans les différents environnements de développement.
Visual Basic
Une manière commune de gérer des erreurs dans Visual Basic est de définir un gestionnaire d’erreurs. Ce gestionnaire d’erreur peut être défini avec la déclaration Sur Erreur. Normalement, le gestionnaire affiche un message d’erreur et nettoie un peu pour éviter des références détachées et tout genre de fuites de ressources. Visual Basic remplit son propre objet Err avec des informations de l’interface IErrorInfo.
Sub Validate() |
JavaScript
La mise en œuvre de Microsoft de JavaScript (JScript) fournit un mécanisme « try-catch » pour gérer les erreurs soulevées par les appels COM. Il est très semblable à l’approche de VisualBasic dans le sens que vous déclarez également un objet d’erreur contenant les informations nécessaires.
function Generate() { |
C/C++
C/C++ vous donne accès facilement à HRESULT de l’appel COM et à IErrorInterface.
HRESULT hr; |