1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 08:22:08 +01:00
Files
archived-doc-es/reference/errorfunc/functions/set-exception-handler.xml
Pedro Antonio Gil Rodríguez 0b2d981bb5 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337666 c90b9560-bf6c-de11-be94-00142212c4b1
2015-08-28 14:48:57 +00:00

171 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 86da9d950137b26ef6a0fdabb052782fc9e5a1b9 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.set-exception-handler" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>set_exception_handler</refname>
<refpurpose>
Establece una función de gestión de excepciones definida por el usuario
</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>
Establece el manejador de excepciones predeterminado si una excepción no es capturada dentro de un
bloque try/catch. La ejecución se detendrá después de la
llamada a <parameter>exception_handler</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>exception_handler</parameter></term>
<listitem>
<para>
Nombre de la función a llamar cuando ocurra una excepción no capturada.
Es necesario que esta función de gestión
acepte un parámetro, que será el objeto de excepción que
fue lanzado. Esta es la firma del manejador:
</para>
<para>
<methodsynopsis>
<type>void</type><methodname><replaceable>handler</replaceable></methodname>
<methodparam><type>Exception</type><parameter>ex</parameter></methodparam>
</methodsynopsis>
</para>
<para>
Desde PHP 7, la mayoría de los errores se notifican lanzando excepciones
<classname>Error</classname>, las cuales serán también capturadas por el manejador. <classname>Error</classname>
y <classname>Exception</classname> implementan la interfaz <classname>Throwable</classname>.
Esta es la signatura del manejador desde PHP 7:
</para>
<para>
<methodsynopsis>
<type>void</type><methodname><replaceable>handler</replaceable></methodname>
<methodparam><type>Throwable</type><parameter>ex</parameter></methodparam>
</methodsynopsis>
</para>
<para>
Se podría pasar &null; en su lugar para reiniciar este manejador a su estado predeterminado.
</para>
<caution>
<para>
Observe que al proporcionar una <classname>Exception</classname> explícita como
tipo implicado al parámetro <parameter>ex</parameter> en una retrollamada causará
problemas con la jerarquía de excepciones cambiada en PHP 7.
</para>
</caution>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el nombre del manejador de excepciones definido anteriormente, o &null; en caso de error. Si
no se definió un manejador anterior también devolverá &null;.
</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>
Cambiado el tipo de parámetro pasado a <parameter>exception_handler</parameter>
de <classname>Exception</classname> a <classname>Throwable</classname>
</entry>
</row>
<row>
<entry>5.5.0</entry>
<entry>
Anteriormente, si se pasaba &null;, esta función devolvía &true;.
Devuelve el manejador anterior desde PHP 5.5.0.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>set_exception_handler</function></title>
<programlisting role="php">
<![CDATA[
<?php
function manejador_excepciones($excepción) {
echo "Excepción no capturada: " , $excepción->getMessage(), "\n";
}
set_exception_handler('manejador_excepciones');
throw new Exception('Excepción No Capturada');
echo "No Ejecutado\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><link linkend="language.exceptions">Excepciones de 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
-->