生成pdf或其他非html文件时的错误处理

Error handling when generating pdf or other non-html file

本文关键字:错误 处理 文件 html pdf 其他 生成      更新时间:2023-09-26

在我们的门户网站中,我们为某些类型的数据生成PDF。用户通过点击一个标签下载PDF,该标签引用了我们返回的内容类型:application/PDF;charset=utf-8

这在工作时效果良好;浏览器意识到它正在获取PDF文件,并打开内部或外部PDF阅读器,或者根据浏览器和用户配置要求用户保存文件。

我们有一些情况下,我们可能无法生成PDF。首先,我们没有处理这个错误,一个NullPointerException失败了,我们得到了一个丑陋的新页面,里面充满了JSON格式的垃圾。然后我们尝试返回一个空结果,浏览器认为这很好,只保存或发送一个空文件。然后我尝试返回一个重定向,这让Chrome感到困惑,它显示了一个警告,告诉用户发生了奇怪的事情。

标记中的href的格式为"/module/showmypdf.cmd?pdfid=67482"。正如我所说,当返回有效的pdf时,这一点很好。

那么,在向浏览器发送非HTML文件时,有什么错误处理的最佳实践吗?还有什么可以让浏览器将我的响应解释为重定向的吗?

好的,我弄清楚了重定向不起作用的原因。我在我的Java Spring控制器中这样做:

response.sendRedirect("重定向:mypage.html?pdfError=true");

当从控制器返回视图名称时,可以使用"redirect:"前缀。在sendDirect()调用中,它只会增加混乱。删除"重定向:"修复了它。