即使我可以捕获从@post.save引发的异常并记录错误并打印线程
begin
if @post.save
rescue Exception => ex
# rescue Errno::ECONNREFUSED => ex
Thread.list.each {|t| p t}
Rails.logger.error "ERROR: Could not save blog post! Is the Solr server up and running? Exception: #{ex}"
它仍然在网页上出现错误,并且没有在堆栈跟踪中显示我的任何代码。sol
我有一个Ruby方法,它遍历一个循环(loop_a),并在每次循环中调用另一个函数(do_something)。我希望Ruby转到下一个loop_a周期,即使它有do_something抛出错误的函数。我正在使用下面的异常处理代码,但应用程序在出现错误时继续停止。谁能告诉我我哪里做错了?
loop_a.each do |str1|
do_something(str1)
rescue Exception => e
Logger.error 'An error occurred: #{e}"
end
我正在开发一个Ruby软件,它可能会捕获一些错误(异常),并使用Bugsnag在Bugsnag日志中记录事件。
例如,我可能有这样的东西:
begin
[...snip...]
rescue StandardError => e
Bugsnag.notify(e)
end
我想要做的是将这一行代码记录的消息重定向到我的控制台。这样,我就可以把它放到我的日志文件中,然后搜索它,查看它之前/之后的内容,并确保事情按照预期的方式工作。
有办法设置Bugsnag来获得这样的功能吗?
我正在我的python代码中自定义异常。我将异常类继承到其他类,现在将一些自定义错误定义为派生自定义异常类的类,如下所示:
class DataCollectorError(Exception): pass
class ParamNullError(DataCollectorError) : pass
class ParamInvalidTypeError(DataCollectorError) : pass
我在python函数中引发这些异常,如下所示:
def READ_METER_DATA (regIndex, numRegisters, slaveUnit):
if not r
我为我正在启动的sinatra应用程序设置了一个项目级RVM gemset,它将连接到具有活动记录的本地数据库。为了测试它,我尝试运行下面的测试应用程序:
test.rb
require 'rubygems' # may not be needed, depending on platform
require 'sinatra'
require 'activerecord'
class Article < ActiveRecord::Base
end
get '/' do
Test.establish_connect
我已经在Linux Mint 11上通过RVM安装了Ruby。它似乎安装得很好:当我输入rvm | head -1时,我得到的结果是"rvm is a function“。输入ruby -v会得到1.9.2p290。我可以从bash终端窗口运行ruby脚本。然而,当我尝试从gvim (我有一个映射到"ruby“的快捷方式)或geany或gedit (同上)运行相同的脚本时,我得到"ruby: command not found”(在gvim中)或"ruby: not found“(在geany或gedit中)。
这里有更多信息:“哪个ruby”给了我:$HOME