购物车功能优化与 Ajax 集成实践
1. 错误处理迭代(Iteration E2)
1.1 错误发现
在应用运行过程中,当访问 carts 控制器的特定页面时,出现了异常。具体是在 carts 控制器的某一行代码:
@cart = Cart.find(params[:id])
若无法找到对应的购物车,Active Record 会抛出 RecordNotFound 异常。不同数据库可能会抛出不同的异常,例如使用 PostgreSQL 时,可能会抛出 StatementInvalid 异常。
1.2 错误处理方案选择
对于该异常,有两种处理思路:
- 静默忽略 :从安全角度看,这是一个不错的选择,因为它不会向潜在攻击者透露任何信息。但如果代码中存在生成错误购物车 ID 的 bug,应用对外会表现为无响应,用户无法得知发生了错误。
- 记录日志并重新显示目录页 :我们选择这种方式。当异常发生时,首先使用 Rails 的日志记录功能将错误信息记录到内部日志文件中;然后重新显示目录页,并向用户显示一条简短的消息,如“Invalid cart”,让用户能够继续使用网站。
1.3 Rails 的 flash 机制
Rails 提供了一种方便的处理错误和错误报告的方式,即 flas
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



