Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生产中的Java web应用程序应该如何处理AJAX请求期间意外的浏览器终止?_Java_Ajax_Web Applications - Fatal编程技术网

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

生产中的Java web应用程序应该如何处理AJAX请求期间意外的浏览器终止?,java,ajax,web-applications,Java,Ajax,Web Applications,我有一个非常标准的web应用程序,它处理来自浏览器中运行的标准Javascript客户端的AJAX请求 不奇怪,当浏览器关闭时,服务器正处于读取数据的中间,抛出异常。在生产中,这是一件很平常的事情 关于防止用户在等待响应时关闭浏览器,这里有一些很好的建议,但我的问题是不可避免的连接丢失。例如,用户的电脑断电、网线拔出等 Java web应用的行业最佳实践是否会抑制此异常?还是应该记录?我的系统中的堆栈跟踪完全在第三方库中(库开始读取,但在将此数据传递给我的代码之前抛出异常),如果我愿意,是否可以

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

不奇怪,当浏览器关闭时,服务器正处于读取数据的中间,抛出异常。在生产中,这是一件很平常的事情

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

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

我将从问题中删除“AJAX”,这不是AJAX特有的

此外,“在生产中存在这些异常是不合适的”这句话也应该更改,没有办法不存在这些异常,您可能是指“记录这些异常”

我会小心地抑制响应处理中出现的任何异常。我至少会记录异常消息。如果正在抑制,则需要100%确保所抑制的异常是由请求端的故障引起的。在Java中,确定异常的来源是不可行的,而且我所知道的所有web框架都不会抛出异常的特殊子类,以指示异常是特定于该故障的。抑制异常的明显问题是抑制重要的异常,并且在评估其他问题的根本原因时遇到不必要的问题

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

请注意,有些web框架在数据读取、数据处理和数据写入之间会有很难的分离。通常情况下,可以放弃数据阶段的编写以进行异常检查,但我见过一些情况,其中会抛出异常,甚至IO异常,并且与请求的另一方无关


还有其他遵循流式或异步模式的web框架,很难知道是哪一部分导致了异常。

似乎只要请求作为单个原子事务处理,那么它就不重要了。只要异常导致回滚,这似乎是合适的。我大体上同意所有这些观点。您是对的,我主要关心如何记录异常。尽管这些异常中的大多数可能是由于用户关闭浏览器的正常和不可避免的行为造成的,但我们不能确定(这可能是服务器端的网络问题)。总的来说,我得多考虑一下。StackOverflow显然没有让我在5分钟后完成我的评论。