Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je ne parviens pas à comprendre comment je peux gérer mes exceptions.
J'aimerais tout pouvoir gérer dans mon errorController.
Or je me retrouve avec de nombreuses erreurs qui s'affichent en pleine page quelquesoit ma configuration:
'display_not_found_reason' => false,
'display_exceptions' => false,
Exemple:
Fatal error: Class 'Application\View\Helper\Age' not found in G:\DEV\zend\rencontres\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.php on line 170
Il semble qu'aucune exception ne soit remontée puisque même en m'amusant a mettre un try catch(\Exception $e) dans toutes mes actions, cela ne change rien.
Je n'arrive pas a trouver de doc qui explicite clairement comment gérer cela.
Hors ligne
Bonjour,
Pour enlever les erreurs il faut ajouter le code suivant:
ini_set('display_errors', false); ini_set('display_startup_errors', false);
J'ai aussi remarqué que l'exception générique ne catch rien. J'ai du gérer chaque exception 1 par 1 dans les cas les plus critiques.
use Zend\Http\Header\Exception\InvalidArgumentException; use Zend\Http\Client\Adapter\Exception\TimeoutException; use Zend\Feed\Reader\Exception\RuntimeException as RERE; use Zend\Http\Client\Adapter\Exception\TimeoutException as CAETE; use Zend\Http\Client\Adapter\Exception\RuntimeException; use Zend\Feed\Reader\Exception\InvalidArgumentException as IAE; ... catch (Exception $e) { echo $atom->atom.' '.$e->getMessage().' <br />'; } catch (RERE $e) { echo $atom->atom.' '.$e->getMessage().' <br />'; } catch (CAETE $e) { echo $atom->atom.' '.$e->getMessage().' <br />'; } catch (IAE $e) { $atom->delete(); }
Hors ligne
Les init_set sont à proscrire en général. On peut faire la même chose directement en modifiant le fichier php.ini pour retirer les erreurs.
Concernant les exceptions si tu as bien fait tes exceptions elle fonctionne très bien mais il faut la catcher en dernier puisque tu catch logiquement l'exception la plus précise jusqu'à la plus générique.
Hors ligne
Dans mon cas je ne vois pas ce que je peux faire:
Fatal error: Class 'Application\View\Helper\Age' not found in G:\DEV\zend\rencontres\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.php on line 170
J'ai beau faire un try catch, ca ne sert a rien puisqu'aucune exception ne semble remontée par Zend\ServiceManager\AbstractPluginManager.
Hors ligne
Bah là il trouve pas ton aide de vue donc il y a un problème ailleurs le try catch ne règlera pas le problème. Il en a besoin pour rendre la vue. Montre moi comment tu as configuré ton aide de vue et ta classe Age stp. Ca sera plus simple pour débugger.
Hors ligne
Mon but n'est pas de debugger je sais parfaitement comment trouver la vue, j'ai provoqué l'erreur spécialement pour voir comment se comportait l'application.
Comme aucune exception n'est levée je ne sais pas comment afficher un message d'erreur sympa a l'utilisateur quand cela se produit.
Hors ligne
C'est possible que le plugin manager ne remonte pas d'exception quand la classe n'existe pas dans ce cas je vois pas trop ce que tu peux faire à part éventuellement soumettre une PR avec un lancement d'exception .
Hors ligne
Ouais c'est ce que je pensais mais cela me parait bizarre que des mecs de ce niveau n'aies pas géré cette exception
Hors ligne
Parce qu'elle n'est pas censée arriver. C'est impossible d'avoir une exception de lancée sur l'application sur ce genre de chose de façon inattendue. Donc aucune raison de lancer une exception.
Hors ligne