【问题标题】:Rails error handlingRails 错误处理
【发布时间】:2015-02-20 16:43:09
【问题描述】:

堆栈:Ruby 2.2、Rails 4.2 和 Honeybadger。

我一直在为我的网站编写错误处理代码。我注意到错误处理在网站上已经变得一团糟,我一直在寻找一种标准化错误处理的方法。

已发现以下“通用”错误类型:

  • 找不到记录/资源
  • 保存记录失败
  • 验证问题
  • 权利/权限错误
  • 其他(通常是探测机器人、双击还是 WTF?)

使用以下结果操作。

  • 通知错误整理资源(可能)
  • 保存数据;如果输入特别长的表单
  • 响应:重定向到错误页面 (flash[:error]='?')
  • 响应:返回 JSON 字符串(AJAX 请求)
  • 响应:各种状态代码 http 3xx、4xx、5xx
  • 为开发者定制的消息(可能);在某些情况下相当冗长
  • 为用户定制消息
  • 默默地什么都不做

然后处理问题

  • 回滚
  • return(退出操作;不允许进一步操作)

有人知道可以整体处理这些集体问题的 Gem/模块/教程吗?

提前谢谢你!

-丹尼尔

【问题讨论】:

  • 类似rubytutorial.io/rails-rescue_from或更具体的东西?
  • @scones rescue_from 处理特定问题,即引发异常。我虽然有抛出异常,但 (Why * Action) 的矩阵意味着要抛出很多异常。

标签: ruby-on-rails ruby-on-rails-4 error-handling


【解决方案1】:

我认为最好的答案是抛出异常

控制器代码负责获取参数、对其进行清理、角色/安全检查、调用 GET 数据(这应该是业务逻辑),以及准备将数据导出回浏览器。

我将从代码中添加处理异常。

然后是业务逻辑,如果发生宿命事件,应该抛出错误。

【讨论】:

猜你喜欢
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 2018-10-12
  • 2016-06-02
  • 2011-07-15
  • 2015-02-24
  • 1970-01-01
相关资源
最近更新 更多