Netty la gestion des exceptions - Gestionnaire throws Exception, alors quoi?
Je suis à la recherche autour d'une exception du schéma de gestion pour Netty, mais je ne suis pas en mesure de trouver beaucoup.
Une sorte de gestion des exceptions guide serait génial. J'ai exceptions levées qui sont envoyés à exceptionCaught mais je ne sais pas quoi faire ensuite.
Quelqu'un peut-il fournir un objectif général de l'explication de la façon de gérer les exceptions dans Netty. Qu'est-ce que le modèle attendu pour le traitement d'une exception générée à partir d'un ChannelHandler?
Grâce,
Matt
OriginalL'auteur Matt Friedman | 2012-03-24
Vous devez vous connecter pour publier un commentaire.
Que Norman et Veebs ont tous les deux indiqué, sans la compréhension de vos besoins précis c'est un peu compliqué de donner une réponse précise cependant....
Je pense que le texte qui suit fournit une méthode générique permettant de gérer les erreurs de serveur que vous n'attendiez pas. Elle renvoie un HTTP de 500-Erreur Interne du Serveur vers le client, puis ferme le canal. Évidemment, je suis en train de faire l'hypothèse que vos clients sont à la demande et de réception sur HTTP laquelle ils ne peuvent être, dans ce cas Veebs la solution est préférable.
Remarque si vous utilisez cette solution, alors vous aurez besoin d'ajouter un HttpResponseDecoder à votre pipeline.
Évidemment, si vous avez des exceptions spécifiques que vous souhaitez capturer et traiter ensuite, vous devez écrire la logique supplémentaire ici pour le faire.
HTH!
OriginalL'auteur James K
Cela dépend vraiment de votre mise en œuvre et le type de l'Exception. Parfois, vous pouvez être en mesure de récupérer, d'autres fois, il peut être préférable de simplement fermer le Canal.
Je pense donc qu'il est impossible de vous dire comment le gérer..
OriginalL'auteur Norman Maurer
D'accord avec Norman.
En général, j'essaie de capter et de traiter tous l'exception de l'application et de retour correcte des messages contenant des erreurs.
Par exemple, un serveur HTTP, je retourne une erreur 404 si un fichier n'a pas été trouvé.
J'ai aussi ajouter la fonction suivante dans mon gestionnaire pour toutes les exceptions que je n'ai pas de capture, ce qui en théorie ne devrait être réseau des erreurs de type. J'ai tendance à prendre un noir et blanc de l'approche de ces exceptions et à supposer que je ne peux pas récupérer. Par conséquent, je ferme le canal. Il appartiendra au client d'essayer de nouveau.
Espère que cette aide.
OriginalL'auteur Veebs