1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 15:12:13 +01:00
Files
archived-doc-fr/language/errors/php7.xml
2026-03-02 14:11:07 +01:00

121 lines
3.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: jbnahan Status: ready -->
<!-- Reviewed: yes -->
<sect1 xml:id="language.errors.php7" xmlns="http://docbook.org/ns/docbook">
<title>Les Erreurs en PHP 7</title>
<para>
PHP 7 modifie la façon dont la plupart des erreurs sont signalées en PHP.
Au lieu d'utiliser le mécanisme traditionnel de gestion d'erreur de PHP 5,
la plupart des erreurs sont maintenant signalées en levant une exception
<classname>Error</classname>
</para>
<para>
Comme pour les exceptions normales, ces exceptions <classname>Error</classname>
remonteront jusqu'à ce qu'elles atteignent le premier bloc d'attrape
<link linkend="language.exceptions.catch"><literal>catch</literal></link>
correspondant. S'il n'y a pas de bloc correspondant, le gestionnaire d'exception
défini par défaut avec la fonction <function>set_exception_handler</function>
sera appelé. Et s'il n'y a pas de gestionnaire d'exception par défaut, alors
l'exception sera convertie en erreur fatale et sera traitée comme une erreur
traditionnelle.
</para>
<para>
Comme la hiérarchie des classes <classname>Error</classname> n'hérite pas
d'<classname>Exception</classname>, le code qui utilise les blocs d'attrape
<code>catch (Exception $e) { ... }</code> pour traiter les exceptions
non-interceptées en PHP 5 n'interceptera pas ces exceptions
<classname>Error</classname>s.
Il faudra donc utiliser soit un bloc <code>catch (Error $e) { ... }</code>,
soit un gestionnaire d'exception défini avec <function>set_exception_handler</function>.
</para>
<sect2 xml:id="language.errors.php7.hierarchy">
<title>Hiérarchie <classname>Error</classname></title>
<itemizedlist>
<listitem>
<simpara><classname>Throwable</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>Error</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>ArithmeticError</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>DivisionByZeroError</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>AssertionError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>CompileError</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>ParseError</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>TypeError</classname></simpara>
<itemizedlist>
<listitem>
<simpara><classname>ArgumentCountError</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>ValueError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>UnhandledMatchError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>FiberError</classname></simpara>
</listitem>
<listitem>
<simpara><classname>RequestParseBodyException</classname></simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara><classname>Exception</classname></simpara>
<itemizedlist>
<listitem>
<simpara>...</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</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
-->