12得票2回答
如何在Rails 4中从ActionDispatch::ParamsParser::ParseError错误中恢复

Rails 4新增了异常ActionDispatch::ParamsParser::ParseError,但由于它位于中间件堆栈中,似乎无法在正常的控制器环境中进行救援。在JSON API应用程序中,我希望以标准错误格式响应。 这个Gist展示了一种通过插入中间件来拦截和响应的策略。按照这个...

10得票3回答
Ruby Timeout::timeout不能触发异常,也没有返回所记录的内容

我有这段代码:begin complete_results = Timeout.timeout(4) do results = platform.search(artist, album_name) end rescue Timeout::Error puts ...

8得票1回答
Ruby中如何针对特定的代码块进行异常处理和重试

我在脚本中有以下代码... begin #Loop to create 1000 emails... #Loop to send 1000 emails... rescue Timeout::Error => e retry_attempts += 1...

7得票4回答
Ruby在多个方法中捕获异常

我已经建立了一个简单的银行应用程序,它能够执行通常的操作;存款,取款等。 我的控制器方法执行这些操作并捕获由账户或其他实体引发的异常。 以下是控制器代码中使用的一些方法: def open(type, with:) account = create type, (holders....

42得票2回答
如何在Ruby中修复一个eval?

我正在尝试找出如何拯救在 Ruby 1.8.6 中使用 eval() 运行代码时遇到的语法错误。 我希望以下 Ruby 代码可以正常运行:#!/usr/bin/ruby good_str = "(1+1)" bad_str = "(1+1" # syntax error: missin...

9得票2回答
在Ruby中,当文件无法打开时,最清晰的打开文件并进行“救援”的方法是什么?

我现在正在使用以下代码来解决这个问题 begin File.open(filename, 'r') rescue print "failed to open #{filename}\n" exit end 有没有更简单的方法来做这件事,就像Perl中的'open (IN, $...

17得票4回答
当ID未找到时,在RoR中进行通用救援控制器

我遇到了这样一种情况:我的应用程序在数据库中查找一个不存在的id。抛出了一个异常。当然,对于任何Web开发人员来说,这都是一个非常普遍的情况。 感谢这个答案,我知道使用 rescue 可以很好地处理这种情况,像这样:def show @customer = Customer.find(p...

15得票1回答
嵌套的begin/rescue/ensure语句是否有效?

这对我来说似乎没问题,我找不到任何说明说有问题,但我想要验证一下。 我有一段代码可能会失败,无论因为什么原因,都需要在其后面添加一个确保语句来保护它,然后需要执行一些代码,无论发生了什么。 这似乎需要一个嵌套的begin/ensure块。 是否有效?(这里实际上没有rescue,只有这种类型的...

125得票3回答
以DRY的方式在Ruby的rescue子句中传递多个错误类

我有一些需要在Ruby中捕获多种类型异常的代码:begin a = rand if a > 0.5 raise FooException else raise BarException end rescue FooException, BarExcepti...

23得票2回答
Ruby Oneline Rescue

最近我学到一个技巧,就是在代码的某一行使用rescue,以防这一行出现错误(参见http://www.rubyinside.com/21-ruby-tricks-902.html的第21条)。我有些代码原本是这样的:if obj['key'] && obj['key']['ke...