Netty 4.0 EncoderException丢失

时间:2015-12-31 10:25:53

标签: netty

我正在使用Netty 4.0.32.Final。

当NPE出现在我的编解码器中并带有这样的堆栈跟踪时:

my.Codec.encode(Codec.java:27)
io.netty.handler.codec.ByteToMessageCodec$Encoder.encode(ByteToMessageCodec.java:168)
io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107)
io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108)
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:633)
io.netty.channel.AbstractChannelHandlerContext.access$1900(AbstractChannelHandlerContext.java:32)
io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:908)
io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:960)
io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:893)
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:358)
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
java.lang.Thread.run(Thread.java:745)

它消失在某个地方。所以我无法用另一个汉勒的exceptionCaught方法处理它。

1 个答案:

答案 0 :(得分:1)

这是一个“出站异常”,因此不会出现在exceptionCaught(...)中。 exceptionCaught(...)仅通知入站异常。上一次写入(...)操作的ChannelFuture将失败,但有例外。