Création de classes d'exception personnalisées pour les services Web

De RAD Studio
Aller à : navigation, rechercher

Remonter à Conception de serveurs gérant les services Web


Si, alors qu'elle tente d'exécuter une requête SOAP, votre application de service Web déclenche une exception, les informations sur cette exception sont automatiquement codées dans un paquet d'erreur SOAP qui est renvoyé à la place du résultat de l'appel de méthode. L'application client déclenche ensuite l'exception.

Par défaut, l'application client déclenche une exception générique du type InvokeRegistry.ERemotableException avec les informations contenues dans le paquet d'erreur SOAP. Vous pouvez transmettre des informations supplémentaires propres à l'application en dérivant un descendant de ERemotableException. Les valeurs de toutes les propriétés publiées ajoutées à la classe d'exception sont placées dans le paquet d'erreur SOAP afin que le client puisse déclencher une exception équivalente.

Pour utiliser un descendant de ERemotableException, vous devez le recenser avec le registre des types distants. C'est-à-dire que vous devez, dans l'unité qui définit votre descendant de ERemotableException, ajouter l'unité InvokeRegistry à la clause uses et appeler la méthode RegisterXSClass de l'objet que la fonction globale RemTypeRegistry renvoie.

Si le client définit et recense également votre descendant de ERemotableException, lorsqu'il reçoit le paquet d'erreur SOAP, il déclenche automatiquement une instance de la classe d'exception appropriée en initialisant toutes ses propriétés aux valeurs contenues dans le paquet d'erreur SOAP.

Pour permettre aux clients d'importer les informations sur votre descendant de ERemotableException, vous devez le recenser avec le registre d'invocation ainsi que le registre des types distants. Ajoutez un appel à la méthode RegisterException de l'objet renvoyé par la fonction globale InvRegistry.

Voir aussi