Cómo manejar excepciones sin control lanzadas en Netty Handler Stack

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

  •  27-10-2019
  •  | 
  •  

Pregunta

Dado que cualquier excepción lanzada en Netty Handler Stack generará un evento ascendente y eventualmente invocará la excepción en el controlador, las excepciones no llegarán al Handler de Exception no abierto. Incluso la respuesta de esa excepción en el método de excepción no ayuda (porque Netty lo maneja nuevamente). Me gustaría lanzar (algunas o todas) excepciones sin control del método ExceptionCaught. ¿Hay alguna forma de hacer esto?

¿Fue útil?

Solución

No, no hay forma de hacer esto. Lo único que puede hacer es manejar la excepción en excepción. ¿Por qué es esto un problema para ti?

Otros consejos

Tengo que estar de acuerdo con Norman, tuve un problema similar. Creé un método ExceptionCaught () y en él llamé Rutina de manejo de mi excepción. El problema que encontré fue mi rutina de manejo de excepciones trató de hacer limpieza y llamar a otros métodos Netty, pero eso resultó en que Netty se colgara.

Mi solución fue crear un nuevo hilo desde Inside ExceptionCaught () que llama a mi rutina de manejo de excepciones y un retorno simple de ExceptionCaught (). Esto permite que el manejo de excepciones de Netty termine y reanude la operación normal de Netty. Debe colocar un retraso de 1 segundo dentro de su nuevo hilo antes de llamar a cualquier otra función de Netty también. Esto asegurará que el manejo de excepciones de Netty se realice antes de que mi nuevo hilo comience su limpieza y llame a otras funciones Netty. Parece un trabajo un poco excesivo, pero funciona y evita las condiciones de carrera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top