3

我有一个使用 Sequel 和 Postgres 的 Sinatra 应用程序......这是一个非常简单的模块,可以插入数据库。我想从插入中捕获任何错误并返回有用的消息。

我的代码如下:

begin
   sql = DB["INSERT INTO table (id, firstname, lastname, ...) values (......)"]
   ds.insert
rescue Sequel::Error
   ...
end

如何捕获实际错误是什么?我可以输入“出现错误”并打印出来,但我想要更具体的内容 - 例如“需要名字”、“需要姓氏”。

有人可以帮忙吗?

4

1 回答 1

6

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

rescue Sequel::Error
  p $!.message
end

您还可以更改救援块以将异常对象放入变量中:

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

两者都会打印异常消息。

于 2012-08-20T19:32:19.037 回答