9
votes

Traitement des exceptions de Netty - Le manipulateur jette une exception, alors quoi?

J'ai cherché un modèle de manipulation d'exception pour Netty, mais je ne suis pas capable de trouver beaucoup.

Une sorte de guide de traitement d'exception serait génial. J'ai des exceptions lancées qui sont envoyées à des lauréats, mais je ne sais pas quoi faire ensuite.

Quelqu'un peut-il fournir une explication générale de la manière de gérer les exceptions à Netty. Quel est le modèle attendu pour la gestion d'une exception projetée d'une chansonhandler?

merci, Mat


0 commentaires

3 Réponses :


2
votes

Cela dépend vraiment de votre implémentation et du type d'exception. Parfois, vous pourrez peut-être récupérer, d'autres fois, il peut être le meilleur pour fermer le canal.

Alors je pense que c'est impossible de vous dire comment le gérer ..


0 commentaires

2
votes

d'accord avec Norman.

En général, j'essaie d'attraper et de gérer toute exception d'application et de renvoyer des messages appropriés contenant les erreurs.

Par exemple, dans un serveur HTTP, je retournerais un 404 Si un fichier n'a pas été trouvé.

J'ajouterai également la fonction suivante dans mon gestionnaire pour toutes les exceptions que je n'avais pas attrapé - ce qui ne devrait être en théorie que des erreurs de type réseau. J'ai tendance à adopter une approche noire et blanche de ces exceptions et suppose que je ne peux pas récupérer. Par conséquent, je ferme la chaîne. Ce sera au client d'essayer à nouveau. xxx

espère que cela aide.


0 commentaires

3
votes

Alors que Norman et Veebs ont mentionné, sans comprendre vos exigences précises, il est un peu délicat de donner une réponse précise mais ... Je pense que ce qui suit offre une manière générique de gérer les erreurs de serveur que vous n'êtes pas attendu. Il renvoie une erreur de serveur interne http 500 sur le client, puis ferme le canal. De toute évidence, je prends l'hypothèse que vos clients demandent et reçoivent sur http, ce qu'ils peuvent ne pas être, auquel cas la solution de Veebs est meilleur. xxx

Remarque Si vous utilisez cette solution, vous allez Besoin d'ajouter un HTTPresponseecoder à votre pipeline également.

Évidemment, si vous avez des exceptions spécifiques que vous souhaitez attraper et gérer, vous écrivez ici une logique supplémentaire ici pour le faire.

HTH!


0 commentaires