草庐IT

ruby - 救援超时::来自Redis Gem的错误(Ruby)

我需要拯救从Redis库中引发的Timeout::Error但我遇到了问题,拯救那个特定的类似乎不起作用。beginRedis.new({:host=>"127.0.0.X"})rescueTimeout::Error=>exend=>Timeout::Error:Timeout::Errorfrom/Users/me/.rvm/gems/ree-1.8.7-2011.03@gowalla/gems/redis-2.2.0/lib/redis/connection/hiredis.rb:23:in`connect'当我尝试挽救Exception时,它仍然不起作用beginRedis.n

ruby - 救援超时::来自Redis Gem的错误(Ruby)

我需要拯救从Redis库中引发的Timeout::Error但我遇到了问题,拯救那个特定的类似乎不起作用。beginRedis.new({:host=>"127.0.0.X"})rescueTimeout::Error=>exend=>Timeout::Error:Timeout::Errorfrom/Users/me/.rvm/gems/ree-1.8.7-2011.03@gowalla/gems/redis-2.2.0/lib/redis/connection/hiredis.rb:23:in`connect'当我尝试挽救Exception时,它仍然不起作用beginRedis.n

异常不会使用Rescue Activerecord :: Record notfound捕获

我的路线文件:Rails.application.routes.drawdoresources:line_itemsresources:carts,param::numberend我的购物车模型:classCart我的lineItem模型classLineItemsController我在我的before_action:set_cartdefset_cart@cart=Cart.find_by!(number:session[:cart_number])rescueActiveRecord::RecordNotFound@cart=Cart.createsession[:cart_number

ruby-on-rails - 在 rescue_from 中使用什么异常类来捕获 422 错误?

我正在尝试在我的应用程序中显示自定义422页面。我应该在rescue_from声明中捕获的异常类是什么?这是我处理RecordNotFound异常的方式:rescue_fromActiveRecord::RecordNotFound,:with=>:render_404 最佳答案 好吧,有一个列表将异常类映射到适当的状态代码。你通过这个documentation.在您的例子中,有三个:ActiveRecord::RecordInvalid、ActiveRecord::RecordNotSaved和ActionController::

.NET 相当于 Ruby 的 begin/rescue/else

Ruby有一个elseblock,可以进入begin/rescue(对于.NET用户来说是try/catch)begin#somecoderescue#ohnoes!Catcheserrorslikecatchblocksin.NETelse#onlyexecuteswhenNOerrorshaveoccuredensure#alwaysexecutes-justlikethefinallyin.NETendelseblock中的代码只有在没有出现错误时才会执行。.NET中是否有提供此功能的结构? 最佳答案 在.NET中,你可以在#

ruby - 在类里面写 Rescue 还是不写?

我理解救援的概念——我的问题是:当我实际创建一个对象时,我应该在我的类中编写我的beginrescueend代码还是应该在类之外编写它?如果我有两个文件-一个是我的类(class),一个是我调用那个类(class)的文件,我应该把我的救援脚本放在哪个脚本中?也许没关系,或者我应该同时使用两者。只是想知道这方面的最佳实践是什么...... 最佳答案 异常处理的一般规则是在最低抽象级别捕获异常,这样可以就如何处理错误做出明智的选择。如果您可以在类方法中做出明智的选择,请在其中包含您的救援逻辑。如果您在调用者级别有更多上下文,并且每次调用

ruby-on-rails - Rails rescue_from 停止执行流程

我在使用rescue_from时遇到问题classSimpleError如您所见,在这段代码中,我只是在操作开始之前引发了一个异常,该异常被rescue_exception方法捕获。问题是,在我捕捉到异常之后,应用程序流停止并且永远不会到达操作代码。异常解救后是否可以继续执行? 最佳答案 简短的回答,没有。rescue_from旨在处理未捕获的异常。如果您想为Controller中的每个操作捕获特定异常,我建议使用around_action.classMyController 关于rub

ruby - rescue_from 考拉异常

也许初学者的问题:我正在尝试使用Koala从facebook检查我的用户权限。在某些情况下,我会被抛出一个错误。所以我只想捕获它并重定向到重新验证。defcheck_facebook_permissionsiftoken=current_user.try(:authentications).find_by_provider('facebook').try(:token)graph=Koala::Facebook::API.new(token)permissions=graph.get_connections('me','permissions')session[:facebook]={

ruby - 使用带有 require/rescue 的单行条件

如果require不成功,我想避免错误。我可以用:beginrequire'unexisting_script'rescueLoadErrorend我尝试用单行条件做同样的事情:require'unexisting_script'rescueLoadError并得到错误nosuchfiletoload--unexisting_script(LoadError)对于其他异常/命令,我对单行救援没有问题,这有效:1/0rescueZeroDivisionError我也试过把命令括起来,但没有成功:(require'unexisting_script')rescueLoadError我可以用

ruby - "=>"中的 "rescue Exception => e"有什么作用?

举个例子:defmethod_of_doommy_string="Isenseimpendingdoom."my_string.ah_ha_i_called_a_nonexistent_methodrescueNoMethodError=>e:puts"PROBLEM:"+e.to_srescueException:puts"Uhh...there'saproblemwiththattheremethod."end在它说的那一行:rescueNoMethodError=>e:'=>'在做什么?它与这种用法有何不同:moduleFighterValuesBAMBOO_HEAD={'lif