2010-01-30 17 views
1

Nous créons une application pour le site Web d'un client. Le site Web fera un appel de fonction à notre application pour générer des données XML, que nous reviendrons sous forme de chaîne. Si quelque chose se passe mal au cours de notre traitement, comment signaler cette erreur? Devrions-nous lancer une exception pour le site Web du client à attraper, ou devrions-nous retourner une chaîne contenant le code d'erreur (au lieu des données XML)? Quel est le sens et/ou est la meilleure pratique?Utilisation d'exceptions ou de chaînes contenant des codes d'erreur dans les services logiciels

Merci d'avance de nous aider!

Répondre

1

Je pense qu'il y a deux façons de le faire. Inclure un élément de chaîne d'erreur dans l'élément de réponse de chaque fonction de service Web.

  1. S'il est vide, l'appel de fonction a réussi. Si elle est définie, il y a eu une exception et la chaîne Error-String vous indique la raison.
  2. Utilisez l'élément SOAP-Fault pour la gestion des exceptions. Je pense que chaque SOAP Toolkit offre un moyen de remplir cet élément (pour l'exemple regarder cadre gSOAP http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc11)
0

Je suis enclin à dire que les codes d'erreur sont presque toujours une mauvaise idée. Les exceptions fournissent un schéma de gestion des erreurs par défaut sain: Si vous ne le gérez pas, vous affirmez effectivement que cela ne peut pas arriver dans votre situation. Si vous avez tort, votre programme échoue rapidement et avec un message d'erreur clair. Les codes de retour n'offrent pas de telles garanties. Le comportement par défaut ici est que l'erreur est balayée sous le tapis et le programme continue comme si de rien n'était.

exceptions à cette règle:

  1. Si l'erreur est très faible, de sorte que la poursuite comme si rien ne se passait est un meilleur défaut que s'écraser.
  2. Dans des environnements très limités en ressources (c'est-à-dire pas des serveurs), les exceptions peuvent être coûteuses.