AJAX 请求期间浏览器意外终止应如何由生产中的 Java 网络应用程序处理?

How should unexpected browser termination during an AJAX request be handled by a Java web app in production?

我有一个非常标准的 Web 应用程序,可以在浏览器中处理来自标准 Java 脚本客户端 运行 的 AJAX 请求。

毫不奇怪,当服务器正在从浏览器读取数据时关闭浏览器时,会抛出异常。在生产中,这并不罕见。

这里有一些关于防止用户在等待响应时关闭浏览器的好建议,但我的问题与不可避免的连接丢失有关。 IE。用户的 PC 断电、网线被拔掉等

Java 网络应用的行业最佳做法是否会抑制此异常?还是应该记录?我系统中的堆栈跟踪完全在第三方库中(库开始读取,但在将此数据传递给我的代码之前抛出异常)如果我愿意,我是否可以抑制它?我觉得在生产中出现这些不可避免的异常是不合适的。

我会一起从问题中删除 "AJAX",这不是 AJAX 具体的。

"having these exceptions in production is not appropriate" 的措辞也应该改变,没有办法没有这些例外,你可能意味着 "logging these exceptions"。

我会小心抑制响应处理中出现的任何异常。我至少会记录异常消息。如果是压制,你需要100%确定你压制的异常是请求端的失败导致的。在 Java 中,确定异常的来源是不可行的,而且我知道的 none Web 框架会抛出异常的特殊子类,表明该异常是特定于该失败的.抑制异常的明显问题是抑制重要的异常,并且在评估其他问题的根本原因时遇到不必要的问题。

您可能应该 post 关于您正在使用的特定 library/framework 的另一个问题,询问对于该框架,忽略超过特定点的异常是否安全。

请注意,某些 Web 框架会在读取数据处理数据写入之间进行硬分离数据。对于那些,通常,写入数据阶段可以放弃以进行异常检查,但我看到过会抛出异常甚至IO异常的情况,并且不会相关到请求的另一边。

然后还有其他遵循流或异步模型的 Web 框架,在这些框架中很难知道是哪个部分导致了异常。