1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 07:22:16 +01:00
Files
archived-doc-es/language/errors/basics.xml
2025-04-01 17:17:30 +02:00

102 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: de9c65c91ff1710d8b2d2ec955caea0162679305 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.errors.basics" xmlns="http://docbook.org/ns/docbook">
<title>Lo básico</title>
<para>
PHP notifica errores en respuesta a varias condiciones de error internas.
Estas se pueden utilizar para señalar varias condiciones diferentes,
mostrándose y/o registrándose si fuera necesario.
</para>
<para>
Cada error que genera PHP incluye un tipo. Existe una
<link linkend="errorfunc.constants">lista de dichos tipos de error</link>,
junto con una breve descripción de su comportamiento y sus posibles
causas.
</para>
<sect2 xml:id="language.errors.basics.handling">
<title>Manejo de errores con PHP</title>
<para>
Si no se establece un manejador de errores, PHP manejará cada error que ocurra
según su configuración. Los errores que se notifican y los que se
ignoran se controla mediante la directiva
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
de php.ini, o durante la ejecución llamando a
<function>error_reporting</function>. Sin embargo, se recomienda encarecidamente
establecer la directiva de configuración, ya que algunos errores pueden ocurrir
antes de comenzar la ejecución de un script.
</para>
<para>
En un entorno de desarrollo debería establecerse siempre
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
a <constant>E_ALL</constant>, debido a que es necesario reconocer y corregir los
problemas generados por PHP. En producción, se podría establecer esta directiva a
un nivel de menor verbosidad como
<code>E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED</code>, aunque
en muchos casos <constant>E_ALL</constant> también es apropiado, ya que puede
proporcionar advertencias precoces de problemas potenciales.
</para>
<para>
Lo que PHP hace con estos errores depende de dos directivas más de php.ini.
<link linkend="ini.display-errors"><parameter>display_errors</parameter></link>
controla si el error es mostrado como parte de la salida del script. Esta
debería estar siempre deshabilitada en un entorno de producción, ya que puede incluir
información confidencial tal como contraseñas de bases de datos, aunque a menudo es útil
habilitarla en desarrollo debido a que asegura la notificación inmediata de problemas.
</para>
<para>
Además de mostrar errores, PHP puede registrarlos cuando la directiva
<link linkend="ini.log-errors"><parameter>log_errors</parameter></link>
está habilitada. Esta registrará cualquier error en el fichero o registro del sistema
definido por
<link linkend="ini.error-log"><parameter>error_log</parameter></link>. Esta directiva
puede ser extremadamente útil en un entorno de producción debido a que se pueden registrar
los errores que ocurran y generar informes basados en ellos.
</para>
</sect2>
<sect2 xml:id="language.errors.basics.user">
<title>Manejadores de errores de usuario</title>
<para>
Si el manejo de errores predeterminado de PHP es inadecuado, también se pueden manejar muchos
tipos de error con un manejador de errores propio mediante
<function>set_error_handler</function>. Mientras que algunos tipos de error no se pueden
manejar de esta forma, aquellos que sí se pueden lo hacen de la manera
en que su script vea apropiada: por ejemplo, se puede emplear para mostrar al usuario
una página de error personalizada y luego notificar más directamente mediante un registro,
tal como el envío de un correo electrónico.
</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
-->