入站异常

在处理入站事件的过程中异常抛出,将从它在ChannelInboundHandler里被触发的那一点开始流经Pipeline,处理异常需要重写方法exceptionCaught。一般在Pipeline中尾端的ChannelHandler处理异常,保证所有的入站异常都总是会被处理。
异常在到达尾端没有被重写的异常方法处理时,会被记录为“未被处理”,通过日志WARN级别进行记录,并尝试释放该异常。

出站异常

每个出站操作都将返回一个ChannelFuture,注册到ChannelFuture的ChannelFutureListener将在操作完成时通知该操作时成功还是失败了。
几乎所有的ChannelOutBoundHandler上的方法都会传入一个ChannelPromise的实例,作为ChannelFuture的子类,ChannelPromise也可以被分配用于异步通知的监听器。ChannelPromise在ChannelFuture的基础上还提供立即通知的方法:
setSuccess();setFailure(Throwable cause);

如果Handler自身抛出异常,将会通知任何已经注册到对应ChannelPromise的监听器。