2014-01-24 4 views
1

이 중 하나를 호출 할 때 예외가 필요합니까?Netty channel.write() 또는 context.write()가 예외를 throw합니까?

io.netty.channel.Channel.write(...) 
io.netty.channel.Channel.flush(...) 
io.netty.channel.Channel.writeAndFlush(...) 
io.netty.channel.ChannelHandlerContext.write(...) 
io.netty.channel.ChannelHandlerContext.writeAndFlush(...) 

그렇지 않습니다. 검사 된 예외는 없으며 문서화 된 throw도없고 모든 예제 코드에서 try/catch 블록을 보지 못했습니다. 그러나 나는 명시 적으로 내 가정을 찾을 수없는 것 같습니다.

예를 들어이 예외를 발생시키지 않고 다음 채널이 채널이 개방 것처럼 메세 모든 하류 핸들러에 의해 처리된다 폐쇄

ChannelFuture closeFuture = channel.close(); 
closeFuture.addListener(new ChannelFutureListener() { 
    @Override 
    public void operationComplete(ChannelFuture future) throws Exception 
    { 
     channel.writeAndFlush(msg); // No exception when writing to closed channel 
    }); 

비록. 나를 틀리게하지 마라. 나는이 행동에 완벽하게 만족한다! 나는 channelInactive이나 exceptionCaught 이벤트를 잡아서 잘 처리 할 수 ​​있으며, 내가 성공적인 미래를 경청 할 수있는 write에 관심이있는 곳을 알아볼 수 있습니다.

나는 누군가 Netty가 정말로 끝없는 예외 처리없이 I/O를 쓸 수있게 해달라고 말한다. Netty 5.0.0.Alpha1을 사용하고 있습니다.

감사합니다.

답변

3

예외를 throw하지 않지만 반환 된 ChannelFuture에 작업의 예외 (성공)를 알립니다.

관련 문제