<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.errors.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'language.errors.basics.php',
    1 => 'B&aacute;sico',
    2 => 'B&aacute;sico',
  ),
  'up' => 
  array (
    0 => 'language.errors.php',
    1 => 'Erros',
  ),
  'prev' => 
  array (
    0 => 'language.errors.php',
    1 => 'Erros',
  ),
  'next' => 
  array (
    0 => 'language.errors.php7.php',
    1 => 'Erros no PHP 7',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'language/errors/basics.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.errors.basics" class="sect1">
 <h2 class="title">Básico</h2>

 <p class="para">
  O PHP retornará erros em resposta a inúmeras condições de erros internos.
  Eles podem ser utilizados para sinalizar inúmeras condições diferentes e podem ser
  exibidos e/ou registrados conforme a necessidade.
 </p>

 <p class="para">
  Cada erro que o PHP gera inclui um tipo. A
  <a href="errorfunc.constants.php" class="link">lista destes tipos de erros</a> está disponível,
  junto a uma breve descrição de seu comportamento e como podem ser
  causados.
 </p>

 <div class="sect2" id="language.errors.basics.handling">
  <h3 class="title">Manuseando erros com o PHP</h3>

  <p class="para">
   Se nenhum manipulador de erro for definido, o PHP tratará todos os que ocorrerem
   de acordo com sua configuração. Quais erros são reportados, e quais são
   ignorados é controlado pela diretiva
   <a href="errorfunc.configuration.php#ini.error-reporting" class="link"><code class="parameter">error_reporting</code></a>
   no php.ini, ou em tempo de execução, chamando a função
   <span class="function"><a href="function.error-reporting.php" class="function">error_reporting()</a></span>. É altamente recomendável que esta
   diretiva de configuração seja definida, entretanto, alguns erros podem ocorrer antes
   da execução do script começar.
  </p>

  <p class="para">
   Em um ambiente de desenvolvimento, deve-se sempre definir a diretiva
   <a href="errorfunc.configuration.php#ini.error-reporting" class="link"><code class="parameter">error_reporting</code></a>
   para <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong>, para estar ciente, e corrigir,
   problemas informados pelo PHP. Em produção, deve-se definir para um nível
   menos verboso, como
   <code class="code">E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED</code>, mas
   em muitos casos <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong> também é apropriado, pois pode antecipar
   avisos de problemas em potencial.
  </p>

  <p class="para">
   O que o PHP faz com estes erros depende de mais duas diretivas no php.ini.
   A diretiva <a href="errorfunc.configuration.php#ini.display-errors" class="link"><code class="parameter">display_errors</code></a>
   controla se o erro será mostrado como parte da saída do script. Esta diretiva
   deve sempre estar desativada no ambiente de produção, já que pode incluir informações
   confidenciais como senhas do banco de dados, mas é útil
   habilitá-la em desenvolvimento, já que garante o reporte imediato de problemas.
  </p>

  <p class="para">
   Além de mostrar os erros, o PHP pode logar erros quando a diretiva
   <a href="errorfunc.configuration.php#ini.log-errors" class="link"><code class="parameter">log_errors</code></a>
   estiver habilitada. Isso logará qualquer erro para um arquivo ou para o syslog
   definido com a diretiva
   <a href="errorfunc.configuration.php#ini.error-log" class="link"><code class="parameter">error_log</code></a>. Pode
   ser extremamente útil no ambiente de produção, já que pode-se logar os erros
   que ocorrerem e então gerar relatórios baseados nestes erros.
  </p>
 </div>

 <div class="sect2" id="language.errors.basics.user">
  <h3 class="title">Manipuladores de erros personalizados</h3>

  <p class="para">
   Se o manipulador de erros padrão do PHP for inadequado, pode-se manipular diversos
   tipos de erro com manipuladores de erros próprios ao instalá-los com a função
   <span class="function"><a href="function.set-error-handler.php" class="function">set_error_handler()</a></span>. Embora alguns tipos de erros não possam ser
   manipulados desta maneira, aqueles que puderem, serão manipulados
   da forma que o script decidir: por exemplo, pode ser utilizado para exibir
   uma página de erro customizada ao usuário e reportar mais precisamente que por log,
   como enviando um e-mail.
  </p>
 </div>
</div><?php manual_footer($setup); ?>