I\'m implementing Server-Sent Events using Servlet 3.0\'s javax.servlet.AsyncContext interface.
However I can\'t understand how I should handle I/O errors like peer
There's an alternative solution, in cases where it's more convenient to use getWriter()
.
PrintWriter out = ac.getResponse().getWriter();
out.print(stuff);
out.flush(); // swallows IOException
if (out.checkError()) {
// handle error or throw out...
}
That is, the PrintWriter class does provide a method to retrieve write errors later.
The problem is that: ac.getResponse.getWriter().flush()
does not throw IOException
So in order to get a error notification upon I/O operation you need to use ServletOutputStream
instead:
try {
ServletOutputStream out = ac.getResponse().getOutputStream();
out.print(stuff);
out.flush(); // throws IOException
}
catch(IOException e) {
// handle a error
}