我正在使用 \lithium\data\source\MongoDB::update() 在安全模式下执行 upsert。在某些更新中,由于传递了重复的键,因此会出现预期的 MongoCursorException。下面的 try/catch 不会捕获错误,它会返回到我附加到 Dispatcher::run() 的 ErrorHandler。
try {
$result = Items::update($record, $conditions, array('upsert' => true, 'safe' => true));
} catch (MongoCursorException $e) {
$result = false;
} catch (Exception $e) {
$result = false;
}