php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.06.2008, 12:01  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard exceptionhandling - was wird als exception behandelt?

Guten Morgen,

ich befasse mich seit kurzem mit Exceptions in PHP.

Ich stoße nun gerade an den Punkt an dem ich mich frage, wie ich denn so einen fehler:

PHP-Code:
Fatal errorCall to a member function blub() on a non-object in /kerps/htdocs/unittest/classes/class.TestClass.php on line 13 
der hier her kommt
PHP-Code:
$bla->blub(); 
($bla ist natürlich kein Objekt und hat auch keine Methode blub)

abfange.
Ich würde das gerne als Exception behandeln aber mir scheint so einfach ist das nicht...
denn auch dieses
PHP-Code:
try{
        
$bla->blub();
        
        }catch(
Exception $e){
            
            echo 
"hallo";
            
        } 
gibt die gleiche Fehlermeldung aus...

Kann mir jemand einen Denkanstoß geben?

Danke für eure Mühe!

Crypi
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.06.2008, 14:12  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Du könntest z.b. einen eigenen ErrorHandler schreiben der anstatt die Fehler auszugeben, eine Exception mit dem Fehlercode wirft, allerdings nur um es gleich gesagt zu haben, nicht alle Fehler lassen sich von einem ErrorHandler verarbeiten:


http://de2.php.net/manual/de/functio...or-handler.php
Zitat:
Hinweis: Die folgenden Fehlertypen können nicht von einer benutzerdefinierten Funktion behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR und E_COMPILE_WARNING.
robo47 ist offline  
Alt 19.06.2008, 14:45  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

ok, danke.
ich werde mir das mal ansehen.

Gruß,
Crypi
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Alt 21.06.2008, 07:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das ist keine Ausnahme, sondern ein Programmierfehler. Du hast sicherzustellen und zu ueberpruefen, ob eine Eingabe (Benutzer, Datei, woher auch immer ..) Sinn ergibt oder sogar zu einem Fehler fuehren koennte.

In deinem Fall waere daher ein
PHP-Code:
<?php
if (!$bla instanceof BlaClass) {
  
// Fehlerbearbeitung oder, falls wirklich eine *Ausnahme*
  
throw new BlaClassException(BlaClassException::MissingInstance);
}
if (!
$bla instanceof BlubInterface) {
  
// $bla does not implement interface with method "blub()"
}
?>
wesentlich angebrachter!
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Firebug Exception Blackmail JavaScript, Ajax und mehr 5 18.06.2008 08:54
PHP: Exceptions - Teil 1 Zergling-new Tutorials 4 05.12.2007 23:31
PHP5: Exception im Konstruktor verhindert Instanziierung Quadaptor PHP-Fortgeschrittene 4 31.03.2005 17:33
Templates: Wie behandelt man "Varianten"? PHP Tipps 2005 2 23.03.2005 07:51
[php5/Exceptions] Exception thrown without a stack frame PHP-Fortgeschrittene 4 24.11.2004 21:51
Wie behandelt PHP Classendefinitionen ? PHP Tipps 2004 3 22.10.2004 14:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
exception in errorhandler.ajax.handle.js

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.