Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-04-2013 14:02:40

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Gestion des exceptions et erreurs fatales

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

 

#2 09-04-2013 17:23:23

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Gestion des exceptions et erreurs fatales

Bonjour,

Pour enlever les erreurs il faut ajouter le code suivant:

Code:

        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.

Code:

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

 

#3 09-04-2013 18:05:18

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Gestion des exceptions et erreurs fatales

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

 

#4 10-04-2013 10:54:21

booradley
Membre
Date d'inscription: 10-01-2009
Messages: 163

Re: Gestion des exceptions et erreurs fatales

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

 

#5 10-04-2013 11:34:51

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Gestion des exceptions et erreurs fatales

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

 

#6 11-04-2013 10:27:37

dquintard
Membre
Date d'inscription: 16-09-2008
Messages: 18

Re: Gestion des exceptions et erreurs fatales

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

 

#7 11-04-2013 11:00:16

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Gestion des exceptions et erreurs fatales

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 smile.

Hors ligne

 

#8 11-04-2013 11:23:17

dquintard
Membre
Date d'inscription: 16-09-2008
Messages: 18

Re: Gestion des exceptions et erreurs fatales

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

 

#9 11-04-2013 11:55:12

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Gestion des exceptions et erreurs fatales

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages