Mongocursorexception, брошенный, но не пойман, попробуйте / поймать в литий

StackOverflow https://stackoverflow.com//questions/10692193

  •  12-12-2019
  •  | 
  •  

Вопрос

Я использую \ 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;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top