Exception handling in Klassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Exception handling in Klassen

    Hi
    Mein Problem ist folgendes:
    Ich habe eine statische Methode gemacht, die für das Werfen von
    Exceptions zuständig ist. Diese Methode will ich nun aus einer anderern
    Klasse heraus ausrufen. Das ganze sieht etwa so aus:
    PHP-Code:
    <?php
    class foo
    {
        public static function 
    error($msg)
        {
            throw new 
    Exception($msg."\n");
        }
    }

    class 
    bar
    {
        public function 
    test()
        {
            if(
    $blub) {
                
    foo::error('shit happens!');
            }
        }
    }
    ?>
    Wenn ich dann die Klasse bar benutzen will.
    Fehlermeldung: Apache stürzt ab

    Also irgendwas scheint da falsch zu laufen

    Danke für die Hilfe!

    lg icepacker

  • #2
    könnte ein bug sein - der code ist im grunde ok.
    versuch mal die funktion error zu erweitern:
    PHP-Code:
    try
    {
            throw new 
    Exception($msg."\n");
    }
    catch(
    Exception $e)
    {
           echo 
    "caught";

    Kommentar


    • #3
      evtl. auch mal auf der php-developer mailing list nachfragen (siehe php.net und dann mailinglist) bzw. das problem schildern
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        eAccelerator im Hintergrund? Probier mal ohne...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Hi
          Danke für die Antworten.

          Es liegt wohl doch an etwas anderem. Ich hatte die Klassen jeweils
          in einer anderen Datei, wenn ich alles in eine Klasse stecke funktionierts

          Um alle Klassen letztendlich benutzen zu können habe ich __autoload()
          benutzt. Und da wurde die Klasse mit den statischen Methoden nicht
          mit eingefügt, warum da Apache gleich abschmiren muss weiß ich
          zwar nicht, aber egal...

          Also hat jemand eine Idee, wie ich Klasse automatisch imkluden könnte
          auch wenn ich die Methoden der Klasse mit dem Scope Operator aufrufe?

          Danke!

          lg icepacker

          Kommentar


          • #6
            Original geschrieben von icepacker
            Also hat jemand eine Idee, wie ich Klasse automatisch imkluden könnte
            auch wenn ich die Methoden der Klasse mit dem Scope Operator aufrufe?
            autoload ... und wieder meine Frage: Läuft der eA im Hintergrund?
            (ein blick in phpinfo() verrät es dir...)
            ggf. dann mal dort in der ml melden, oder dem Hoster sagen, er soll die cvs-Version installieren ^^,

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar

            Lädt...
            X