J'ai une collection de certains articles et certaines opérations sur eux. Cette opération fait partie des appels distants entre le client et le serveur et doit s'exécuter sur tous les éléments à la fois. Du côté serveur, il s'exécute plusieurs fois sur chaque élément et peut échouer ou réussir. J'ai besoin de savoir quels articles ont réussi et lesquels ont échoué. Je suppose que c'est un cas plutôt courant et qu'il y a de bonnes solutions. Comment devrais-je le concevoir?Gestion des erreurs problème de conception sur la collecte d'éléments
Répondre
il devrait fonctionner sur tous les éléments à la fois
Vous haïra votre vie si vous ne lisez pas dans cela comme une exigence de conception. Tout ou rien est la bonne façon de le gérer. Cela simplifiera tout ce que vous faites.
Si ce n'est pas une option, faites la chose la plus stupide possible. Envelopper chaque appel dans un try/catch et donner un rapport. Les chances sont que personne ne sera en mesure de consommer le rapport, ce qui est une autre raison que tout ou rien est la bonne chose à faire.
modifier:
Elaborer: Lorsque Batching, erreurs d'écriture logique simple rapport est bien, mais la logique d'écriture pour récupérer d'erreurs est très compliquée. Je n'ai jamais vu un système gérer vraiment bien la récupération sur le traitement par lots. Je suis sûr qu'il y a des cas d'angle où chaque élément est complètement indépendant. À ce stade, peu importe que l'un ou l'autre a échoué, mais ce n'est généralement pas le cas.
En général, je me attends à des erreurs qui se produisent lors d'une opération de traitement par lots pour ne pas être critique. J'entends par là que le système devrait être capable d'ignorer les erreurs et de continuer à fonctionner comme si le message à l'origine de l'erreur n'avait jamais existé.
S'il est vraiment essentiel que ces messages sont traités, alors je certainement essayer de tout ou rien.
- 1. zRSSFeed Gestion des erreurs Problème
- 2. cx_Oracle problème de gestion des erreurs
- 3. Gestion des erreurs sur Android
- 4. Problème avec la gestion des erreurs de l'application C#
- 5. WCF - Gestion des erreurs
- 6. VBA Gestion des erreurs sur ADODB Connection.Open
- 7. Apache Camel - problème avec la gestion des erreurs
- 8. Gestion des erreurs WCF
- 9. PDO: gestion des erreurs
- 10. CDI - gestion des erreurs
- 11. gestion des erreurs d'exception
- 12. Gestion des erreurs NSDictionary
- 13. Gestion des erreurs Java
- 14. Gestion des erreurs MySQLi
- 15. Gestion des erreurs Oracle
- 16. Gestion des erreurs Java
- 17. Gestion des erreurs PrintUI.dll
- 18. Gestion des erreurs ASP.NET
- 19. Gestion des erreurs ActiveResource
- 20. VBScript - Utilisation de la gestion des erreurs
- 21. Gestion des erreurs SQL
- 22. Gestion des erreurs libxml2
- 23. Gestion des erreurs ASP.NET Question
- 24. Gestion des erreurs opendir
- 25. Traitement des erreurs dans la conception Web
- 26. Rails et ajax problème mondial de gestion des erreurs
- 27. Qt/C++ Gestion des erreurs
- 28. Gestion des erreurs avec VS2008
- 29. Approche minimaliste pour la gestion des erreurs
- 30. VB5 gestion des erreurs "global"
Mon opération peut échouer sur plusieurs points par des raisons différentes. Quelle erreur devrais-je retourner dans ce cas? Si adhérer 'Tout ou rien', je devrais retourner l'erreur du premier élément échoué, non? – ks1322
Selon le système, je suppose, mais généralement c'est ce que je m'attends. Lors de la première erreur, vous vous attendez à ce que toutes les actions du lot soient également annulées. –