问题标签 [rescue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - ActiveRecord 异常未获救
我有以下代码块:
原因是,你可能猜到了,多个进程可能同时调用这个方法来创建用户(如果它不存在的话),所以当第一个进入块并开始初始化一个新用户时,设置属性并最终调用 save!,用户可能已经创建。在这种情况下,我想再次检查用户是否存在,并且仅在仍然不存在时引发异常(=如果同时没有其他进程创建它)。
问题是,保存时会定期引发 ActiveRecord::RecordInvalid 异常!并没有从救援区救出。有任何想法吗?
编辑:
好吧,这很奇怪。我肯定错过了什么。我根据 Simone 的提示重构了代码,如下所示:
现在我得到了以下异常:
扔在写着“除非user.save”的那一行。这个怎么可能?Rails 认为可以创建用户,因为电子邮件是唯一的,但是 Mysql 唯一索引阻止了插入?那可能性有多大?又该如何避免呢?
ruby-on-rails - Ruby Timeout::timeout 不会触发 Exception 并且不会返回记录的内容
我有这段代码:
然后我启动包含此代码的方法,好吧,这里是堆栈跟踪的开始:
所以我天真地认为我的呼叫超时了,但从未打印过“请打印我的东西”,并且complete_results
这被认为是超时状态返回值(如文档中所述,真或假),绝对不是布尔值。
难道我做错了什么?
ruby-on-rails - Rails 从无效形式中恢复?
我有一个 Rails 2.3 应用程序。
我目前在我的模型中有以下验证:
我有以下控制器:
因此,当您尝试创建不包含 jobno 或 companyname 的新记录时,我正确收到以下错误消息:
我已经阅读了恢复能力,但我不确定如何/在哪里使用它。我已经阅读了一些关于拯救表单内容的能力的文件。我试图使表单保持原位 - 输入内容 - 但在表单上显示错误。
我读过的文件之一是这里http://apidock.com/rails/ActiveRecord/RecordInvalid
我不想记录错误,只需告知用户问题所在,以便他们重试。
这可能吗?
谢谢,
丹尼
ruby-on-rails - 从服务器故障中拯救 Rails 应用程序
我有一个 Rails 应用程序,现在托管在专用服务器上。今天发生了一些事情:应用程序没有响应,我没有 ssh 访问权限,重新启动没有帮助,我正在等待技术支持响应。但这不是问题,即使服务器出现故障,我也只需要此应用程序在线即可。哪个是最简单的选择?我可以在不同的主机上创建第二台服务器并在出现故障时从那里提供服务,如果是这样,如何同步数据库和文件?应用程序负载不重,我只需要它可用。
ruby - 以 DRY 方式将多个错误类传递给 ruby 的救援子句
我有一些代码需要在 ruby 中拯救多种类型的异常:
我想做的是以某种方式存储我想在某处救援的异常类型列表并将这些类型传递给救援子句:
进而:
这甚至可能吗,如果没有一些真正的hack-y调用是否有可能eval
?鉴于我在TypeError: class or module required for rescue clause
尝试上述操作时看到的,我不抱希望。
ruby - 当我在“救援”中“重试”时,Ruby 没有“确保”
考虑这个 begin-rescue-ensure 块:
如果您按原样运行该代码,则会引发异常,因为没有名为“make_service_call()”的函数。所以,它重试。但它会陷入无限循环,因为控制永远不会因为“重试”而进入“确保”。无论“开始”或“救援”中发生什么,不应该“确保”块的一部分确保其中的代码被执行吗?
当然,我可以在“开始”中增加计数——这不是重点。我只是在问关于“确保”的问题,以便弄清楚。
ruby-on-rails - Rails 3:渲染时如何执行动作:动作?
Rails 3 建议使用 Rest。比如我做博客系统。
如果 rails 可以通过 render 执行操作,那么救援代码就很简单了。也许,一个解决方案是采取新的行动。但是,规格没有新的行动......什么更好?你呢??
对不起,我的英语不好。。
ruby-on-rails-3 - 救援例外。导轨 3
我试图在视图中捕获异常。我在 .html.erb 文件中使用 rgmagick:
当文件不正确但不正确时,我试图捕获异常:S
任何想法??非常感谢!
ruby - Twitter Gem - 需要考虑救援吗?
我正在使用 Twitter Gem,并且创建了一个长时间运行的 ruby 任务。我希望它能够处理常见错误,所以我正在寻找一个我应该考虑防止的列表(例如失败的鲸鱼 500)
这是我的代码功能的开始/结束循环:
您能想到要保护和重试的任何其他错误吗?这是一种处理错误的结构良好的方法吗?我应该考虑哪些设计实现?
ruby-on-rails - Rescue_from 不会从视图或助手中拯救 Timeout::Error
我的应用程序控制器中有一个 around_filter,用于将所有操作包含在超时块中,以便操作在达到 30 秒 Heroku 限制之前失败。我还有一个 rescue_from Timeout::Error 来彻底挽救这些超时。不幸的是,rescue_from 只在某些时候有效。
如果在控制器中执行时发生超时,它可以正常工作,但如果超时发生在视图或助手中,则无法救援。
Timeout::Error 继承自的 Interrupt 和 SignalException 都不能正确救援。但是,救援异常本身确实在视图和助手中正确救援。
有没有其他方法可以挽救 Timeout::Error 以使其正常工作?