Files
doc-fr/language/errors/basics.xml

104 lines
4.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: de9c65c91ff1710d8b2d2ec955caea0162679305 Maintainer: jbnahan Status: ready -->
<!-- Reviewed: yes -->
<sect1 xml:id="language.errors.basics" xmlns="http://docbook.org/ns/docbook">
<title>Bases</title>
<para>
PHP signale des erreurs en réponse à un certain nombre de conditions d'erreurs internes.
Celles-ci peuvent être utilisées pour indiquer une multitude de problèmes différents,
et peuvent être affichées et/ou enregistrées dans l'historique selon les besoins.
</para>
<para>
Chaque erreur que PHP génère comprend un type. Une
<link linkend="errorfunc.constants">liste de ces types d'erreur</link> est disponible,
ainsi qu'une brève description de leur comportement et leur cause possible.
</para>
<sect2 xml:id="language.errors.basics.handling">
<title>Gestion des erreurs en PHP</title>
<para>
Si aucun gestionnaire d'erreur n'est défini, PHP gèrera les erreurs qui se
produisent selon sa configuration. Quelles erreurs seront signalées et lesquelles
seront ignorées est contrôlé par la directive php.ini
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
ou lors de l'exécution du script en appelant <function>error_reporting</function>. Il est toutefois fortement recommandé de
configurer la directive, car certaines erreurs peuvent se produire avant
que l'exécution du script débute.
</para>
<para>
Dans un environnement de développement, la directive
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
devrait toujours être configurée avec <constant>E_ALL</constant>, afin d'être
informé et de corriger les problèmes relevés par PHP. En production il est possible
configurer la directive avec un niveau moins verbeux tel que
<code>E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED</code>,
mais généralement <constant>E_ALL</constant> reste approprié car il peut fournir
des avertissements en avance à des problèmes potentiels.
</para>
<para>
Comment PHP traite ces erreurs dépend de deux directives php.ini supplémentaires.
<link linkend="ini.display-errors"><parameter>display_errors</parameter></link>
détermine si le message d'erreur est affiché dans la sortie du script.
Ceci devrait toujours être désactivé dans un environnement de production, car
le message d'erreur peut contenir des informations confidentielles, telles que les
mots de passe de base de données. Cependant il est souvent utile d'activer cette
directive lors du développement, car ceci assure un signalement immédiat des problèmes.
</para>
<para>
En plus d'afficher les erreurs, PHP peut enregistrer les erreurs quand la
directive <link linkend="ini.log-errors"><parameter>log_errors</parameter></link>
est activée. Toutes les erreurs seront alors enregistrées dans le fichier ou
syslog défini par
<link linkend="ini.error-log"><parameter>error_log</parameter></link>.
Ceci est extrêmement utile dans un environnement de production, car les erreurs qui
se produisent seront enregistrées, et des rapports pourront être générés en
s'appuyant sur ces erreurs.
</para>
</sect2>
<sect2 xml:id="language.errors.basics.user">
<title>Gestionnaire d'erreurs d'utilisateur</title>
<para>
Si le gestionnaire d'erreur par défaut de PHP ne convient pas, beaucoup de types
d'erreurs peuvent être gérés par un gestionnaire d'erreur personnalisé qui peut
être défini avec <function>set_error_handler</function>.
Bien que certains types d'erreurs ne puissent pas être gérés de cette manière,
ceux qui le peuvent seront gérés de la manière que le script utilisateur juge
appropriée : par exemple, ceci peut être utilisé pour afficher une page d'erreur
personnalisée à l'utilisateur et signaler l'erreur de façon plus directe qu'en
l'enregistrant dans un fichier, comme en envoyant un courriel électronique.
</para>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->