Mongocursorexception viene lanciato, ma non catturato da provare / cattura in litio

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

  •  12-12-2019
  •  | 
  •  

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;
}
.

È stato utile?

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
scroll top