J'ai une application silex. J'ai prise un gestionnaire générique enregistré:Pourquoi le gestionnaire d'erreurs silex ne s'exécute-t-il pas?
$app->error(function (\Exception $e) use ($app) {
return (new JsonResponse(['message' => 'Something truly horrible happened. Sorry.', 500)])->send();
}
);
Pourtant, quand quelque chose est de lancer une exception dans $app::share()
, il ne déclenche pas:
$app->share(function() {
throw new \Exception('wtf');
}));
Cette exception ne sera pas gérée par le gestionnaire d'erreurs, mais pops directement comme s'il n'y avait pas de gestionnaire en place du tout:
exception 'Exception' with message 'wtf' in appinit.php:230
Stack trace: #0 ./vendor/pimple/pimple/lib/Pimple.php(126): Closure$#12() #1 ./vendor/pimple/pimple/lib/Pimple.php(83): Closure$Pimple::share() #2 ./web/appinit.php(234): Pimple->offsetGet() #3 app.php(6): include() #4 {main}
Je me attendais une réponse 400 Bad Request de base avec le contenu:
{
"message": "Something truly horrible happened. Sorry.",
}
Pourquoi mon gestionnaire ne s'active pas?
double possible de [Silex gestionnaire d'exceptions] (http://stackoverflow.com/questions/20311508/silex-exception -handler) – k0pernikus
Je ne pense pas que c'est lié à la question que vous postez. Avez-vous exécuté ce code avec l'indicateur d'exécution sur ('' '$ app ['debug'] = true''')? Si oui, pouvez-vous l'éteindre et voir ce qui se passe? – mTorres