抛出异常时 Netty 通道关闭
Netty channel closes when exception is thrown
我在客户端模式下设置了 Netty。我有一个带有一个处理程序的简单管道:
MyHandler extends Http2ConnectionHandler implements Http2FrameListener
如果我调用 channel.write()
然后故意在 write 方法中抛出异常,通道会在它到达 exceptionCaught
方法之前关闭。
是什么原因导致 Netty 通道在抛出异常后但在调用 exceptionCaught
之前关闭?
通常,如果您在 "write" 方法中抛出异常,它不会传播到 exceptionCaught
,但它会使 write 方法返回的 ChannelFuture
失败。
何时关闭 Channel
取决于许多不同的因素,例如使用的 ChannelFutureListener
或 ChannelOutboundHandler
实现本身。没有更多的信息,这是不可能的。
我在客户端模式下设置了 Netty。我有一个带有一个处理程序的简单管道:
MyHandler extends Http2ConnectionHandler implements Http2FrameListener
如果我调用 channel.write()
然后故意在 write 方法中抛出异常,通道会在它到达 exceptionCaught
方法之前关闭。
是什么原因导致 Netty 通道在抛出异常后但在调用 exceptionCaught
之前关闭?
通常,如果您在 "write" 方法中抛出异常,它不会传播到 exceptionCaught
,但它会使 write 方法返回的 ChannelFuture
失败。
何时关闭 Channel
取决于许多不同的因素,例如使用的 ChannelFutureListener
或 ChannelOutboundHandler
实现本身。没有更多的信息,这是不可能的。