我们来说下Netty如何处理入站或者出站中抛出的异常
对于入站事件的异常,会从触发的一瞬间开始流经ChannelPipeline,为了处理这种异常,需要在ChannelInboundHandler中重写方法
因为异常会继续按照入站的方向流动,所以可以再最后一个ChannelInboundHandler中处理这个异常
如果出站的时候出现异常,每个出站的操作都返回一个ChannelFuture,注册到这个Future的FutureListener都会在操作完成的时候被通知这个操作是否成功了
几乎所有的ChannelOutboundHandler上的方法上都会被传入一个ChannelPromise的实例
作为ChannelFuture的子类,ChannelPromise可以绑定异步通知的监听器
对于添加ChannelFutureListener,只需要在Future上调用addListener 方法,我们可以在出站操作返回的ChannelFuture上进行add
只针对出站操作
或者是传递给ChannelPromise
细致异常处理情况下,我们调用出站操作时候添加ChannelFutureListener比较合适,
一般情况下,我们传给Promise的异常处理就够用了