j'ai une fonction très simple de vérifier si une entité existe dans un paquet:Catch différents types d'exception
public function checkExists($bundle, $val)
{
try{
$this->em->getRepository($bundle.':'.$val);
}catch (MappingException $e){
return false;
}
return true;
}
J'ai donc les cas suivants:
Input | Expected | Actual
'AppBundle', 'Company' | true | true
'AppBundle', 'NONEXISTANT' | false | false (MappingException caught)
'NONEXISTANT', 'Company' | false | 500 (ORMException not caught)
'NONEXISTANT', 'NONEXISTANT' | false | 500 (ORMException not caught)
Je vois que le problème est qu'il y a différentes exceptions jetées, mais comment pourrais-je retourner faux pour l'un des cas d'une partie inexistant? Existe-t-il un moyen "général" de capturer les exceptions dans symfony car catch (Exception $e)
avec use Symfony\Component\Config\Definition\Exception\Exception;
ne l'attrape pas.
Copie possible de [Attraper plusieurs types d'exception dans un bloc catch] (https://stackoverflow.com/questions/8439581/catching-multiple-exception-types-in-one-catch-block) – jkucharovic
Je ne veux pas compter sur des exceptions pour ce genre de choses. Jetez un oeil aux métadonnées de Doctrine. En particulier: $ em-> getClassMetadata ($ entityClassName); – Cerad