我有一個簡單的問題。我有一個連接表有一個索引,確保(col 1,col 2)是唯一的。從Mysql2拯救::錯誤
我正在使用mysql2 gem添加到該表中,並試圖捕獲Mysql2 :: Error,如果嘗試導致重複的鍵錯誤。當我得到重複鍵錯誤時,我的救援體沒有被執行。
begin
self.foo << bar
rescue Mysql2::Error
logger.debug("#{$!}")
end
我在執行self.foo << bar
Mysql2 ::錯誤收到以下錯誤:重複的項目 '35455-6628' 關鍵 'index_foos_bars_on_foo_id_and_bar_id':INSERT INTO foos_bars
(foo_id
,bar_id
)VALUES(35455, 6628)
但是我的救援聲明沒有被擊中!例外情況不能成功救出。我究竟做錯了什麼?如果我刪除Mysql2 :: Error並解決所有問題,那麼它就可以工作。但是這是不好的做法 - 我只是想從Mysql2 :: Error中解救出現重複條目的情況。
感謝,
你檢查你的日誌,當你拯救一切,並確保Mysql2 ::錯誤是完全正確的資本化和一切爲了什麼被拋出? – jdc 2011-06-16 13:19:11
我記錄了異常,它是Mysql2的類型::錯誤 – deruse 2011-06-16 15:15:22