Files
doc-fr/reference/errorfunc/functions/set-exception-handler.xml
Yannick Torres 9550fd9ded sync with EN
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@337982 c90b9560-bf6c-de11-be94-00142212c4b1
2015-10-10 04:39:06 +00:00

178 lines
5.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 86da9d950137b26ef6a0fdabb052782fc9e5a1b9 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="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.0.0</entry>
<entry>
Le type du paramètre passé dans <parameter>exception_handler</parameter>
a changé, passant de <classname>Exception</classname> à <classname>Throwable</classname>
</entry>
</row>
<row>
<entry>5.5.0</entry>
<entry>
Précédemment, si &null; était passé, alors la fonction retournait
&true;. Désormais, elle retourne le gestionnaire précédant, et ce,
depuis PHP 5.5.0.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</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>&seealso.callback;</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
-->