在球衣中使用流输出响应时,在刷新一些输出后如何处理异常?

柯鴻儀*_*柯鴻儀 5 java rest jersey

最近我使用 jersey 中的接口“StreamingOutput”来流式传输我的 json 格式响应,例如:

@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test(){
    StreamingOutput stream = new StreamingOutput() {

        @Override
        public void write(OutputStream os) throws IOException,
        WebApplicationException {
            Writer writer = new BufferedWriter(new OutputStreamWriter(os));
                for( ...  loop ...) {
                    //response something immediatly
                    writer.write(somthing ...);
                writer.flush();
            }
        }
    };

    return Response.ok(stream).build();
}   
Run Code Online (Sandbox Code Playgroud)

但是,如果在我“//立即响应某些内容”给客户端后,抛出一些异常怎么办?

除了在正常响应的一部分后等待特殊错误消息之外,还有什么方法可以处理这种情况?

San*_*osh 4

如果流式传输时出现错误,您几乎无能为力。您始终可以捕获异常,但已发送的响应无法恢复。典型的案例是接收流的客户端突然变得不可用/中止下载。最好的情况是你可以只记录它。