2012-05-21 23 views
2

我正在使用\ lithium \ data \ source \ MongoDB :: update()在安全模式下執行upsert。在某些更新中,由於傳遞了重複鍵,因此會出現預期的MongoCursorException。下面的try/catch不會捕獲錯誤,並且它會回到我已經連接到Dispatcher :: run()的ErrorHandler。MongoCursorException被拋出,但沒有通過在鋰電池中的try/catch捕獲

try { 
    $result = Items::update($record, $conditions, array('upsert' => true, 'safe' => true)); 
} catch (MongoCursorException $e) { 
    $result = false; 
} catch (Exception $e) { 
    $result = false; 
} 

回答

5

你需要使用語句添加到您的文件的頂部,或者放一個反斜槓在異常類名的前面,表示他們是從全球範圍內,而不是你的命名空間。我更喜歡課堂頂部的使用說明。

use MongoCursorException; 
use Exception; 
+0

Derp,我想我應該在嘗試自動完成時聽我的IDE。謝謝。 –

+0

那個人也第一次來了我。 – rmarscher