【发布时间】:2022-10-09 09:13:16
【问题描述】:
我一直在寻找一种避免 StacklessClosedChannelException 的方法,但我什么也没找到。我想这不安全,也不应该发生,如何避免呢?
【问题讨论】:
-
请显示完整的堆栈跟踪
-
io.netty.channel.DefaultChannelPipeline - 触发了一个 exceptionCaught() 事件,它到达了管道的尾部。这通常意味着管道中的最后一个处理程序没有处理异常。 io.netty.channel.StacklessClosedChannelException at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)
-
这意味着通道已关闭,而仍在进行写入。这可能是因为远程对等方关闭了通道或者您关闭了通道。
-
这是可以理解的,但是如何避免这个异常呢?
-
如果它由远程对等方触发,您基本上不能。如果它是由您自己触发的,您需要确保在实际关闭通道之前发生所有写入。