我们来说下Netty如何处理入站或者出站中抛出的异常

对于入站事件的异常,会从触发的一瞬间开始流经ChannelPipeline,为了处理这种异常,需要在ChannelInboundHandler中重写方法

图片

因为异常会继续按照入站的方向流动,所以可以再最后一个ChannelInboundHandler中处理这个异常

如果出站的时候出现异常,每个出站的操作都返回一个ChannelFuture,注册到这个Future的FutureListener都会在操作完成的时候被通知这个操作是否成功了

几乎所有的ChannelOutboundHandler上的方法上都会被传入一个ChannelPromise的实例

作为ChannelFuture的子类,ChannelPromise可以绑定异步通知的监听器

对于添加ChannelFutureListener,只需要在Future上调用addListener 方法,我们可以在出站操作返回的ChannelFuture上进行add

图片

只针对出站操作

或者是传递给ChannelPromise

图片

细致异常处理情况下,我们调用出站操作时候添加ChannelFutureListener比较合适,

一般情况下,我们传给Promise的异常处理就够用了

发表评论

邮箱地址不会被公开。 必填项已用*标注