<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Xesti%C3%B3n_de_erros</id>
	<title>Curso POO PHP Xestión de erros - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Xesti%C3%B3n_de_erros"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Xesti%C3%B3n_de_erros&amp;action=history"/>
	<updated>2026-10-26T17:25:04Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Xesti%C3%B3n_de_erros&amp;diff=36722&amp;oldid=prev</id>
		<title>Vlourido en 09:01 26 jul 2013</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Xesti%C3%B3n_de_erros&amp;diff=36722&amp;oldid=prev"/>
		<updated>2013-07-26T09:01:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Curso POO PHP| 118 - Curso POO PHP]]&lt;br /&gt;
== Xestión de erros ==&lt;br /&gt;
&lt;br /&gt;
PHP define unha [http://www.php.net/manual/es/errorfunc.constants.php clasificación dos erros] que se poden producir na execución dun programa e ofrece métodos para axustar o tratamento destes. Para facer referencia a cada un dos niveis de erro, PHP define unha serie de constantes. Cada nivel identifícase por unha constante. Por exemplo, a constante &amp;#039;&amp;#039;&amp;#039;E_NOTICE&amp;#039;&amp;#039;&amp;#039; fai referencia a avisos que poden indicar un erro ao executar o guión, e a constante &amp;#039;&amp;#039;&amp;#039;E_ERROR&amp;#039;&amp;#039;&amp;#039; engloba erros fatais que provocan que se interrompa forzosamente a execución.&lt;br /&gt;
&lt;br /&gt;
A configuración inicial de como se vai tratar cada erro segundo o seu nivel realízase en &amp;#039;&amp;#039;&amp;#039;php.ini&amp;#039;&amp;#039;&amp;#039; o ficheiro de configuración de PHP. Entre os principais parámetros que podes axustar están:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/errorfunc.configuration.php#ini.error-reporting error_reporting]&amp;#039;&amp;#039;&amp;#039;. Indica que tipos de erros se notificarán. O seu valor fórmase utilizando os operadores a nivel de bit para combinar as constantes anteriores. Por exemplo, o valor &amp;quot;&amp;#039;&amp;#039;&amp;#039;E_ALL &amp;amp; ~E_NOTICE&amp;#039;&amp;#039;&amp;#039;&amp;quot; indica que se notifiquen todos os erros (E_ALL) salvo os avisos en tempo de execución (E_NOTICE). Cando non se pasan parámetros, devolve o nivel de notificación actual.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/errorfunc.configuration.php#ini.display-errors display_errors]&amp;#039;&amp;#039;&amp;#039;. No seu valor por defecto (1), fai que as mensaxes se envíen á saída estándar (e polo tanto móstrense no navegador). Débese desactivar (0) nos servidores que non se usan para desenvolvemento senón para produción.&lt;br /&gt;
&lt;br /&gt;
Dende código, podes usar a función &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/function.error-reporting.php error_reporting]&amp;#039;&amp;#039;&amp;#039; coas constantes anteriores para establecer o nivel de notificación nun momento determinado. Por exemplo, se nalgún lugar do teu código figura unha división na que exista a posibilidade de que o divisor sexa cero, cando isto aconteza obterás unha mensaxe de erro. Para evitalo, podes desactivar a notificación de erros de nivel E_WARNING antes da división e restaurala ao seu valor normal a continuación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
nivel_erros = error_reporting();&lt;br /&gt;
error_reporting = (nivel_erros &amp;amp; ~E_WARNING);&lt;br /&gt;
$resultado = $dividendo / $divisor;&lt;br /&gt;
// Recuperamos o nivel anterior&lt;br /&gt;
error_reporting(nivel_erros);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aínda que en moitos casos é máis sinxelo empregar o operador de supresión de erros &amp;#039;&amp;#039;&amp;#039;@&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
@$resultado = $dividendo / $divisor;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder rexistrar a un arquivo de texto os erros que se produzan en un sitio web en producción, debemos asegurarnos de ter activa en &amp;#039;&amp;#039;&amp;#039;php.ini&amp;#039;&amp;#039;&amp;#039; a directiva &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/errorfunc.configuration.php#ini.log-errors log_errors]&amp;#039;&amp;#039;&amp;#039; e indicar empregando &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/errorfunc.configuration.php#ini.error-log error_log]&amp;#039;&amp;#039;&amp;#039; o ficheiro a empregar como rexistro.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
log_errors = On&lt;br /&gt;
error_log = &amp;quot;\xampp\php\logs\php_error_log&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manexador de erros a medida ===&lt;br /&gt;
&lt;br /&gt;
Para obter máis control sobre os erros que se poidan producir, existe tamén a posibilidade de substituír a xestión destes pola que ti definas. É dicir, podes programar unha función para que sexa a que executa PHP cada vez que se produce un erro. O nome desa función indícase utilizando &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/function.set-error-handler.php set_error_handler]&amp;#039;&amp;#039;&amp;#039; e debe ter como mínimo dous parámetros obrigatorios (o nivel do erro e a mensaxe descritiva) e ata outros tres opcionais con información adicional sobre o erro (o nome do ficheiro en que se produce, o número de liña, e o estado das variables nese momento).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
set_error_handler(&amp;quot;meuXestorDeErros&amp;quot;);&lt;br /&gt;
$resultado = $dividendo / $divisor;&lt;br /&gt;
restore_error_handler();&lt;br /&gt;
&lt;br /&gt;
function meuXestorDeErros($nivel, $mensaxe)&lt;br /&gt;
{&lt;br /&gt;
    switch($nivel) {&lt;br /&gt;
        case E_WARNING:&lt;br /&gt;
            echo &amp;quot;Erro de tipo WARNING: $mensaxe.&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
            break;&lt;br /&gt;
        default:&lt;br /&gt;
            echo &amp;quot;Erro de tipo non especificado: $mensaxe.&amp;lt;br /&amp;gt;&amp;quot;;                &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A función &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/function.restore-error-handler.php restore_error_handler]&amp;#039;&amp;#039;&amp;#039; restaura o manexador de erros orixinal de PHP (máis concretamente, o que se estaba a usar antes da chamada a set_error_handler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Vlourido|Víctor Lourido]] 19:58 13 jul 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>Vlourido</name></author>
	</entry>
</feed>