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

标签 java ajax web-applications

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

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

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

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

最佳答案

我会一起从问题中删除“AJAX”,这不是特定于 AJAX 的。

“在生产中有这些异常是不合适的”这句话也应该改变,没有办法没有这些异常,你的意思可能是“记录这些异常”。

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

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

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

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

关于java - 生产中的 Java Web 应用程序应如何处理 AJAX 请求期间意外的浏览器终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723728/

相关文章:

java - 检查 Android 上的页面是否已启动会导致崩溃吗?

java - Java中的GUI计算按钮编码错误

javascript - 是否可以用JQuery .ajax()实现 'PUT'数据跨域

java - 避免在 Eclipse 关闭后重新发布 Web 应用程序

java - 我无法停止 java SwingWorker 进程

Java-如何将解析嵌套的 json 数据存储到 Java 列表中

asp.net - SEO 动态/AJAX 页面

php - 通过 ajax 获取另一个页面并显示数据 -> 无法显示正确的格式

web-applications - 网站和网络应用程序有什么区别?

javascript - IndexedDB 在哪里?你如何使用它?