Mongocursorexception ser lanzado, pero no atrapado por intento / captura en litio
Pregunta
Estoy usando \ Lithium \ DATA \ Source \ MongoDB :: Actualizar () Para hacer un UPSERT en modo seguro.En algunas actualizaciones, existe una MongocursorException esperada debido a que se pasa una llave duplicada.El intento / captura a continuación no cogida el error, y se burbujea a un error de error que he adjuntado al despachador :: Ejecutar ().
try {
$result = Items::update($record, $conditions, array('upsert' => true, 'safe' => true));
} catch (MongoCursorException $e) {
$result = false;
} catch (Exception $e) {
$result = false;
}
Solución
Debe agregar declaraciones de uso a la parte superior de su archivo, o coloque una barra invertida frente a los nombres de las clases de excepción para indicar que son del alcance global y no de su espacio de nombres.Prefiero las declaraciones de uso en la parte superior de la clase.
use MongoCursorException;
use Exception;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow