知识卡片

异常统一沿Inbound方向传播

专业/工作 · 1313

内容

ChannelHandler抛出的异常,无论发生在Inbound方法还是Outbound方法,都沿Inbound方向经fireExceptionCaught传给下一节点,走到Pipeline末尾。因此不论异常源自哪种Handler,统一异常处理器放Pipeline最后节点就能兜住所有异常;插在中间的话,后面Handler抛出的异常就捕获不到。发散:异常传播路径和正常数据路径完全不同,不能默认对称——这与[[Inbound与Outbound事件传播方向相反]]描述的常规双向对称传播形成对比。

参考来源

《跟闪电侠学Netty:Netty即时聊天实战与底层原理》第25章《ChannelPipeline解析》