<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'language.errors.basics.php',
    1 => 'Basics',
    2 => 'Basics',
  ),
  'up' => 
  array (
    0 => 'language.errors.php',
    1 => 'Fehler',
  ),
  'prev' => 
  array (
    0 => 'language.errors.php',
    1 => 'Fehler',
  ),
  'next' => 
  array (
    0 => 'language.errors.php7.php',
    1 => 'Fehler in PHP 7',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    '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">Basics</h2>

 <p class="para">
  PHP meldet Fehler als Reaktion auf eine Reihe von internen Fehlerzuständen.
  Diese können verwendet werden, um eine Reihe von verschiedenen Zuständen zu 
  signalisieren, und können nach Bedarf angezeigt und/oder protokolliert werden.
 </p>

 <p class="para">
  Jeder Fehler, den PHP erzeugt, beinhaltet einen Typ. Eine
  <a href="errorfunc.constants.php" class="link">Liste dieser Fehlertypen</a> ist 
  verfügbar, zusammen mit einer kurzen Beschreibung ihres Verhaltens 
  und wie sie hervorgerufen werden können.
 </p>

 <div class="sect2" id="language.errors.basics.handling">
  <h3 class="title">Fehlerbehandlung mit PHP</h3>

  <p class="para">
   Wenn keine Funktion zur FehlerBehandlung bestimmt wurde, behandelt PHP
   alle auftretenden Fehler gemäß seiner Konfiguration. Welche Fehler berichtet
   und welche ignoriert werden wird dabei durch die Anweisung 
   <a href="errorfunc.configuration.php#ini.error-reporting" class="link"><code class="parameter">error_reporting</code></a>
   in der php.ini oder zur Laufzeit durch den Aufruf von 
   <span class="function"><a href="function.error-reporting.php" class="function">error_reporting()</a></span> kontrolliert.
   Es wird dringend empfohlen, dass die Konfigurationsanweisung gesetzt werden, 
   da einige Fehler auftreten können, bevor die Ausführung des Skripts beginnt.
  </p>

  <p class="para">
   In einer Entwicklungsumgebung sollte 
   <a href="errorfunc.configuration.php#ini.error-reporting" class="link"><code class="parameter">error_reporting</code></a>
   immer auf den Wert <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong> eingestellt werden, damit man
   auf alle von PHP festgestellten Probleme aufmerksam gemacht wird und diese
   korrigieren kann.
   In einer Produktivumgebung würde man dies auf einen weniger geschwätzigen Wert 
   wie etwa <code class="code">E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED</code>
   einstellen, wobei aber in vielen Fällen <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong> ebenfalls 
   angemessen ist, da es eine Frühwarnung für potentielle Probleme anbieten kann.
  </p>

  <p class="para">
   Wie PHP mit diesen Fehlern weiter fortfährt, hängt von zwei weiteren
   Anweisungen in php.ini ab. 
   <a href="errorfunc.configuration.php#ini.display-errors" class="link"><code class="parameter">display_errors</code></a>
   kontrolliert, ob ein Fehler als Teil der Ausgabe des Skriptes angezeigt wird.
   Dies sollte in einer Produktivumgebung immer abgestellt werden, da es
   sensible Informationen wie beispielsweise Datenbankzugangsdaten beinhalten kann,
   aber in Entwicklungsumgebungen ist es oft hilfreich dies einzuschalten, da es
   eine sofortige Berichterstattung über Probleme sicherstellt.
  </p>

  <p class="para">
   Zusätzlich zum Anzeigen von Fehlern kann PHP die Fehler protokollieren,
   wenn die Anweisung
   <a href="errorfunc.configuration.php#ini.log-errors" class="link"><code class="parameter">log_errors</code></a>
   aktiviert ist. Damit werden alle Fehler in die Datei oder Syslog protokolliert,
   welche durch die Anweisung
   <a href="errorfunc.configuration.php#ini.error-log" class="link"><code class="parameter">error_log</code></a>
   eingestellt ist. Dies kann in Produktivumgebungen sehr hilfreich sein,
   da damit auftretende Fehler protokolliert und daraus hilfreiche Berichte
   erzeugt werden können.
  </p>
 </div>

 <div class="sect2" id="language.errors.basics.user">
  <h3 class="title">Benutzerdefinierte Fehlerbehandlung</h3>

  <p class="para">
   Wenn die standardmäßige Fehlerbehandlung von PHP nicht ausreichend ist,
   kann man außerdem viele Arten von Fehlern mit einer eigenen Funktion zur 
   Fehlerbehandlung verarbeiten, in dem man diese mittels
   <span class="function"><a href="function.set-error-handler.php" class="function">set_error_handler()</a></span> einrichtet.
   Während manche Arten von Fehlern damit nicht verarbeitet werden können, 
   kann ein Skript diejenigen die behandelt werden können damit so behandeln wie
   es am sinnvollsten erscheint: Beispielsweise kann dies benutzt werden, um dem 
   Benutzer eine angepasste Fehlerseite anzuzeigen und anschließend über den 
   Fehler direkter als nur durch ein Protokoll zu berichten, zum Beispiel 
   durch das Senden einer E-Mail.
  </p>
 </div>
</div><?php manual_footer($setup); ?>