Ruby 捕获Sequel::错误异常

Ruby 捕获Sequel::错误异常,ruby,sinatra,sequel,Ruby,Sinatra,Sequel,我有一个Sinatra应用程序利用续集和Postgres。。。这是一个插入数据库的非常简单的模块。我希望捕获插入中的任何错误并返回有用的消息 我的代码如下: begin sql = DB["INSERT INTO table (id, firstname, lastname, ...) values (......)"] ds.insert rescue Sequel::Error ... end 如何捕获实际错误是什么?我可以把“有一个错误”,这是打印出来的,但我想要更具体

我有一个Sinatra应用程序利用续集和Postgres。。。这是一个插入数据库的非常简单的模块。我希望捕获插入中的任何错误并返回有用的消息

我的代码如下:

begin
   sql = DB["INSERT INTO table (id, firstname, lastname, ...) values (......)"]
   ds.insert
rescue Sequel::Error
   ...
end
如何捕获实际错误是什么?我可以把“有一个错误”,这是打印出来的,但我想要更具体的东西,如“名字是必需的”,“姓氏是必需的”


有人能帮忙吗?

您可以使用最后一个异常对象魔法常量
$

rescue Sequel::Error
  p $!.message
end
您还可以更改rescue块,将异常对象放入变量中:

rescue Sequel::Error => e
  p e.message
end

双方都会打印例外信息。

谢谢。我想这很容易。