Mongocursorexception viene lanciato, ma non catturato da provare / cattura in litio
Domanda
Sto usando \ lithium \ data \ sorgente \ mongodb :: update () per eseguire un upsert in modalità provvisoria.Su alcuni aggiornamenti, c'è una mongocursorexception prevista a causa di una chiave duplicata superata.Il Try / Catch di seguito non cattura l'errore, e bolle fino a un errore di errore che ho allegato al Dispatcher :: Esegui ().
try {
$result = Items::update($record, $conditions, array('upsert' => true, 'safe' => true));
} catch (MongoCursorException $e) {
$result = false;
} catch (Exception $e) {
$result = false;
}
. Soluzione
È necessario aggiungere dichiarazioni di utilizzo nella parte superiore del file o inserire una barra rovesciata davanti ai nomi della classe di eccezione per indicare che provengono dall'ambito globale e non dal proprio spazio dei nomi.Preferisco le dichiarazioni di utilizzo nella parte superiore della classe.
use MongoCursorException;
use Exception;
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow