Question

J'utilise PHP 4, la seule façon que je connaisse pour provoquer une erreur et tout arrêter appelle die (). Mais dans le cas où je rencontre l'erreur plus tard et ne me souviens pas où sa venue de je voudrais préciser le numéro de page et de la ligne que la matrice () a eu lieu le (comme d'autres erreurs php font). Est-il possible de le faire?

Merci!

Était-ce utile?

La solution

Vous devriez regarder dans la constantes magiques.

echo __LINE__; // Line number

Vous pouvez également exécuter error_log () pour envoyer des erreurs tranquillement dans le journal.

Autres conseils

Je pense que vous devriez utiliser trigger_error () générer un E_USER_ERROR ou E_USER_WARNING. Cela vous permet de contrôler le comportement en détail. Par exemple, vous pouvez spécifier si les messages doivent être affichés tout en utilisant error_reporting () , ou gérer la E_USER_WARNING :. s en utilisant explicitement set_error_handler ()

La façon la plus simple est d'utiliser:

echo __FILE__ . ": line " . __LINE__;
die();

Si vous deviez utiliser PHP5, vous pouvez également utiliser des exceptions:

throw new Exception("My error message!");

La trace de la pile révélera l'ensemble de la pile d'appel et la ligne cela a été jeté sur.

(EDIT: Merci à [@ John Isaacs] et [@Emil H] pour me informer que les exceptions ne sont pas ajoutés à PHP jusqu'à PHP5)

En plus de @Jukka Dahlbom et @ suggestions de Ólafur Waage vous pouvez également envisager d'utiliser debug_backtrace() .

Une meilleure utilisation error_log() pour signaler une erreur et debug_backtrace() pour le débogage. Vous pouvez également écrire votre propre fonction de gestion des erreurs (voir set_error_handler() ) pour combiner les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top