Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Neuerungen in PHP 5  Teil von  OOP und PHP 5
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Ausnahmebehandlung: Seite 2

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



In PHP 5 steht Ihnen ein zusätzliches Mittel zur Verarbeitung von Ausnahmen zur Verfügung. Es handelt sich um die try-throw-catch-Fehlerbehandlung, welche auch als Ausnahmebehandlung (engl. exception) bezeichnet wird.

Der Nutzen liegt einerseits in der gewonnenen Flexibilität, da sich beliebige eigene Fehlertypen verwenden lassen, anderseits aber auch in der Möglichkeit, Fehlerbehandlungscodes zu bündeln und somit den Fehler von seiner Behandlung auch örtlich zu trennen, um lesbarere Skripts zu erhalten.

Wenn also etwa eine Methode einen Fehler erkennt, auf den sie nicht reagieren kann, so »wirft« (throw) sie eine Ausnahme des entsprechenden Typs. Der Programmablauf des Programms wird dadurch unterbrochen. Diese Ausnahme wird daraufhin im dafür vorgesehenen catch-Block wieder »aufgefangen« und verarbeitet.

Beispiel – Funktion division() samt try-throw-catch-Fehlerbehandlung

<?php

function division($a,$b)
{
  // Überprüfung, ob durch Null dividiert werden soll
  if ($b == 0)
  {
    // Ausnahme melden (werfen)
    throw new exception("Division durch null nicht durchführbar!");    
  }
  return($a/$b);

}

// Einleiten der Ausnahmebehandlung
try
{
  echo division (10,5); // 2
  echo division (10,0); // Erzeugt eine Ausnahme!  
}
// Verarbeitung des Ausnahmefehlers
catch (exception $fehler)
{
  echo $fehler->getMessage() . "\n";
}
?>

Im vorliegenden Beispiel wird der Ausnahmefehler »Division durch null nicht durchführbar!« ausgegeben. Bei sämtlichen Anweisungen innerhalb des try-Blocks werden eventuelle Ausnahmen abgefangen. Das bedeutet, wenn Sie wie im vorliegenden Fall eine Funktion aufrufen, die eine Ausnahme erzeugt, wird sie abgefangen, solange der Aufruf aus einem try-Block heraus erfolgt. Mithilfe der throw-Anweisung wird der Ausnahmefehler gemeldet. Der Programmablauf wird unterbrochen und der passende catch-Block gesucht. Für die Reaktion auf die Ausnahme ist der catch-Block zuständig. Die Übergabe des Fehlers erfolgt in Form eines Parameters, welcher innerhalb des catch-Blocks abgerufen werden kann. Dieser steht Ihnen somit für die eigentliche Fehlerbehandlung zur Verfügung.

Sollten Sie mit dem Konzept noch nicht aus einer anderen Programmiersprache vertraut sein, können Sie sich die Ausnahmebehandlung von PHP vereinfacht als eine Art Flaschenpost vorstellen.

»Irgendwo auf der Welt tritt ein Ausnahmefall ein. Der in Not Geratene kann sich nicht selbst aus der Lage befreien, kann aber mittels einer in einer Flasche untergebrachten Nachricht versuchen, jemand anderen zu einer geeigneten Reaktion zu bewegen. Er wirft die Flaschenpost ins Meer, irgendjemand wird sie irgendwann und irgendwo aus dem Wasser fischen und hoffentlich angemessen darauf reagieren.«

Diese sicherlich etwas seltsame Metapher zeigt neben dem ungefähren Verhalten auch den eigentlichen Zweck der Ausnahmebehandlung. Sie soll immer dann helfen, wenn etwas Unvorhergesehenes geschieht. Skripts, in denen Ausnahmebehandlungen allgemein und oft zur Kontrolle des Programmablaufs oder zur Kommunikation eingesetzt werden, sind nicht zu empfehlen. Die Flaschenpost ist schließlich auch nur äußerst selten das Kommunikationsmittel der Wahl!

Einige weitere Beispiele sollen Ihnen dabei behilflich sein, die Arbeitsweise von Ausnahmebehandlungen genauer zu betrachten.

Beispiel – Ausnahmebehandlung

<?php

$alter = 20;
$nutzer = "Otto";

try
{
  if ($alter < 18)
  {
    throw new exception($alter . " ist zu Jung!");
  }
  else
  {
    if ($nutzer != "Caroline")
    {
      throw new exception($nutzer . " ist nicht Caroline!");
    }
  }
}
catch (exception $e)
{
  echo $e->getMessage() . "\n";
}
catch (exception $e)
{
  echo $e->getMessage() . "\n";
}

?>




Ausnahmebehandlung Seite 1
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Profihost AG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Kaspersky Labs GmbH weitere Sponsoren
 


:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Eine übermittelte Variable in eine Zahl konvertieren

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Ein Bild on-the-fly horizontal spiegeln

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de