Comment gérer les exceptions non vérifiées lancées dans le gestionnaire Netty pile

StackOverflow https://stackoverflow.com/questions/8823774

  •  27-10-2019
  •  | 
  •  

Question

Étant donné que toute exception lancée dans la pile de gestionnaire Netty génère un événement en amont et éventuellement Invoke exceptionCaught dans le gestionnaire des exceptions n'atteindra pas le uncaught-gestionnaire d'exceptions. Même rethrowing cette exception dans la méthode exceptionCaught ne aide (parce que les poignées netty à nouveau). Je voudrais jeter (tout ou partie) exceptions non vérifiées de la méthode exceptionCaught. Y a-t-il un moyen de faire ça?

Était-ce utile?

La solution

Non, il n'y a aucun moyen de le faire. La seule chose que vous pouvez faire est est de gérer l'exception dans l'exception Caught. Pourquoi est-ce un problème pour vous?

Autres conseils

Je suis d'accord avec Norman, j'ai eu un problème similaire. J'ai créé une méthode exceptionCaught () et il appelé ma routine de gestion des exceptions. Le I problème rencontré était ma routine de traitement d'exception a essayé de faire le nettoyage et appeler d'autres méthodes Netty mais qui a abouti à Netty enferrons.

Mon solution était de créer un nouveau fil à l'intérieur exceptionCaught () qui appelle ma routine de gestion des exceptions et simple retour de exceptionCaught (). Ceci permet à l'exception de Netty manutention pour terminer et reprendre le fonctionnement Netty normal. Vous avez besoin de mettre un délai de 1 seconde dans votre nouveau thread avant d'appeler toute autre fonction Netty ainsi. Ceci assurera la gestion des exceptions de Netty se fait avant mon nouveau thread commence son nettoyage et appelle d'autres fonctions de Netty. Il semble un peu excessif, mais le travail il fonctionne et évite les conditions de course.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top