So behandeln Sie nicht überprüfte Ausnahmen, die in Netty Handler Stack geworfen werden

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

  •  27-10-2019
  •  | 
  •  

Frage

Da jede Ausnahme in Netty Handler Stack ein Upstream-Ereignis erzeugt und schließlich auf Ausnahme in Handler aufgerufen wird, werden die Ausnahmen nicht den ungewöhnlichen Ausnahme-Handler erreichen. Selbst wenn man diese Ausnahme in der ausnahmebeständigen Methode überarbeitet, hilft es nicht (weil Netty sie wieder behandelt). Ich möchte (einige oder alle) nicht überprüfte Ausnahmen aus der Ausnahmemethode werfen. Gibt es eine Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Nein, es gibt keine Möglichkeit, dies zu tun. Das einzige, worüber Sie tun können, ist, die Ausnahme in Ausnahmeberechnung zu bewältigen. Warum ist das ein Problem für Sie?

Andere Tipps

Ich muss Norman zustimmen, ich hatte ein ähnliches Problem. Ich habe eine ausnahmebehörige Methode erstellt und als meine Ausnahmebehandlung als Routine bezeichnet. Das Problem, auf das ich stieß, war, dass meine Ausnahmebehandlung, die versucht hatte, aufzuräumen und andere Netty -Methoden anzurufen, aber das führte dazu, dass Netty aufgehängt wurde.

Mein Fix war es, einen neuen Thread von Inside ExceptionCaught () zu erstellen, der meine Ausnahmebehandlungsroutine und eine einfache Rückkehr von ExceptionCaught () aufruft. Dies ermöglicht Nettys Ausnahmeregelung, um den normalen Netty -Betrieb zu beenden und wieder aufzunehmen. Sie müssen eine 1 -Sekunden -Verzögerung in Ihren neuen Thread einfügen, bevor Sie auch andere Netty -Funktionen aufrufen. Dies wird sicherstellen, dass Nettys Ausnahmebehandlung durchgeführt wird, bevor mein neuer Thread seine Aufräumarbeiten beginnt und andere Netty -Funktionen aufruft. Es scheint ein bisschen übermäßige Arbeit zu sein, aber es funktioniert und vermeidet Rennbedingungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top