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 に答える