Come gestire le eccezioni non controllate gettato in Netty gestore pila

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

  •  27-10-2019
  •  | 
  •  

Domanda

Dal momento che qualsiasi eccezione generata in pila gestore Netty genererà un evento a monte e, infine, invocano exceptionCaught nel gestore eccezioni non raggiungerà il uncaught-eccezioni-gestore. Anche rethrowing tale eccezione nel metodo exceptionCaught non aiuta (perché maniglie Netty di nuovo). Vorrei lanciare (alcuni o tutti) eccezioni unchecked dal metodo exceptionCaught. C'è un modo per fare questo?

È stato utile?

Soluzione

Non v'è alcun modo per fare questo. L'unica cosa che si può fare su è è quello di gestire l'eccezione in eccezione intercettata. Perché questo è un problema per voi?

Altri suggerimenti

sono d'accordo con Norman, ho avuto un problema simile. Ho creato un metodo exceptionCaught () e in essa chiamato la mia gestione delle eccezioni di routine. Il problema che ho incontrato è stato il mio eccezione routine di gestione ha cercato di fare pulizia e chiamare altri metodi di Netty, ma che ha provocato Netty ottenere appeso.

La mia difficoltà è stato quello di creare un nuovo thread dall'interno exceptionCaught () che chiama la mia gestione delle eccezioni di routine e di ritorno semplice da exceptionCaught (). Questo permette ad eccezione di Netty gestione per terminare e riprendere il normale funzionamento Netty. Hai bisogno di mettere un ritardo di 1 secondo all'interno del vostro nuovo thread prima di chiamare qualsiasi altra funzione Netty pure. Ciò assicurerà la gestione delle eccezioni di Netty è fatto prima del mio nuovo thread inizia la sua fino pulita e chiama altre funzioni Netty. Mi sembra un po 'eccessivo lavoro ma funziona ed evita condizioni di gara.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top