一种更好的方法来处理文件上传中在套接字上读取的意外 EOF?

A better way to handle Unexpected EOF read on the socket in file upload?

我后端使用SpringMVC实现文件上传,前端就是一个普通的HTML

<form method="POST" enctype="multipart/form-data" action="/upload">
    file to upload: <input type="file" name="file"><br>
    <input type="submit" value="Upload" />
</form>

一切正常,除非我在上传过程中关闭浏览器,我会看到服务器抛出错误(您必须提前中断该过程才能看到)

java.io.EOFException: Unexpected EOF read on the socket
at org.apache.coyote.http11.InternalNioInputBuffer.fill(InternalNioInputBuffer.java:152)
at org.apache.coyote.http11.InternalNioInputBuffer$SocketInputBuffer.doRead(InternalNioInputBuffer.java:177)
at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:110)
at org.apache.coyote.http11.AbstractInputBuffer.doRead(AbstractInputBuffer.java:416)
at org.apache.coyote.Request.doRead(Request.java:460)
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:338)
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:395)
...

我想知道是否有更好的方法来处理异常,或者我可以安全地保持原样?

无法在您的代码中处理此异常。

此外,此异常也无害,因为它仅通知网络套接字意外关闭(在收到上传的所有内容之前)。

您可以尝试修改您的日志设置以抑制此异常,但您也可能会错过其他异常。