Mongocursorexception, брошенный, но не пойман, попробуйте / поймать в литий
Вопрос
Я использую \ lithium \ data \ Source \ MongoDB :: Обновление (), чтобы сделать Upsert в безопасном режиме.На некоторых обновлениях происходит ожидаемая монгооксурсеxception из-за передаваемого дублированного ключа.Попробуйте / Cover ниже не ловит ошибку, и он пузырирует обратно к ошибке, который я прикрепил к диспетчеру :: Run ().
try {
$result = Items::update($record, $conditions, array('upsert' => true, 'safe' => true));
} catch (MongoCursorException $e) {
$result = false;
} catch (Exception $e) {
$result = false;
}
. Решение
Вам необходимо добавить операторы использования в верхней части вашего файла или поместить обратную косание перед именами классов исключения, чтобы указать, что они находятся из глобального объема, а не на вашем пространстве имен.Я предпочитаю операторы использования в верхней части класса.
use MongoCursorException;
use Exception;
. Не связан с StackOverflow