Files
doc-fr/reference/errorfunc/functions/set-exception-handler.xml
George Peter Banyard 576d1b1494 Remove some PHP 5 mentions
To sync with EN
Also normalize some type tags
2021-04-28 14:49:35 +01:00

144 lines
4.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5fabd07880ab15b0ad2cf7eb055c7c2b36d7120f Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.set-exception-handler" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>set_exception_handler</refname>
<refpurpose>
Définit une fonction utilisateur de gestion d'exceptions
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>callable</type><methodname>set_exception_handler</methodname>
<methodparam><type>callable</type><parameter>exception_handler</parameter></methodparam>
</methodsynopsis>
<para>
<function>set_exception_handler</function> définit le gestionnaire d'exceptions
par défaut si une exception n'est pas attrapée avec un bloc
d'essai/d'attrape. L'exécution sera stoppée après l'appel à la
fonction <parameter>exception_handler</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>exception_handler</parameter></term>
<listitem>
<para>
Nom de la fonction à appeler lorsqu'une exception qui n'a pu être
attrapée survient. Ce gestionnaire doit accepter un paramètre qui
sera l'objet représentant l'exception qui vient d'être lancée.
C'est le gestionnaire de signature avant PHP 7 :
</para>
<para>
<methodsynopsis>
<type>void</type><methodname><replaceable>handler</replaceable></methodname>
<methodparam><type>Exception</type><parameter>ex</parameter></methodparam>
</methodsynopsis>
</para>
<para>
Depuis PHP 7, la plupart des erreurs sont rapportées en émettant une exception
de type <classname>Error</classname>, qui peut être attrapée par le gestionnaire.
Les classes <classname>Error</classname> et <classname>Exception</classname>
implémentent l'interface <classname>Throwable</classname>. Voici la signature
du gestionnaire depuis PHP 7 :
</para>
<para>
<methodsynopsis>
<type>void</type><methodname><replaceable>handler</replaceable></methodname>
<methodparam><type>Throwable</type><parameter>ex</parameter></methodparam>
</methodsynopsis>
</para>
<para>
&null; peut être passé à la place, pour ré-initialiser ce gestionnaire
en son statut initial.
</para>
<caution>
<para>
Notez que le fait de fournir explicitement le type
<classname>Exception</classname> pour le paramètre <parameter>ex</parameter>
dans votre fonction de rappel peut avoir des incidences dans la hiérarchie
des exceptions modifiées en PHP 7.
</para>
</caution>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne le nom du gestionnaire précédemment défini ou &null; en cas d'erreur.
Si aucun gestionnaire n'a été précédemment défini, &null; est également
retourné.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>set_exception_handler</function></title>
<programlisting role="php">
<![CDATA[
<?php
function exception_handler($exception) {
echo "Exception non attrapée : " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Non exécuté\n";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso"><!-- {{{ -->
&reftitle.seealso;
<para>
<simplelist>
<member><function>restore_exception_handler</function></member>
<member><function>restore_error_handler</function></member>
<member><function>error_reporting</function></member>
<member>Les <link linkend="language.exceptions">exceptions en PHP 5</link></member>
</simplelist>
</para>
</refsect1><!-- }}} -->
</refentry>
<!-- 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
-->