1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

PHP5 Exceptions

    • Frage
  • nautiLus
  • 6. Juni 2005 um 15:30
  • Unerledigt
  • nautiLus
    7
    nautiLus
    Mitglied
    Punkte
    425
    Beiträge
    78
    • 6. Juni 2005 um 15:30
    • #1

    Hallo, ich habe eine Frage zu PHP5 Exceptions:

    laut

    Code
    Reflection::export(new ReflectionClass('Exception'));


    wird mir folgendes ausgegeben:

    Code
    Class [ <internal> class Exception ] {
     
    - Constants [0] {
    }
     
    - Static properties [0] {
    }
     
    - Static methods [0] {
    }
     
    - Properties [6] {
    	Property [ <default> protected $message ]
    	Property [ <default> private $string ]
    	Property [ <default> protected $code ]
    	Property [ <default> protected $file ]
    	Property [ <default> protected $line ]
    	Property [ <default> private $trace ]
    }
     
    - Methods [9] {
    	Method [ <internal> final private method __clone ] {
    	}
     
    	Method [ <internal> <ctor> <visibility error> method __construct ] {
     
    	 - Parameters [2] {
    		Parameter #0 [ <required> $message ]
    		Parameter #1 [ <required> $code ]
    	 }
    	}
     
    	Method [ <internal> final public method getMessage ] {
    	}
     
    	Method [ <internal> final public method getCode ] {
    	}
     
    	Method [ <internal> final public method getFile ] {
    	}
     
    	Method [ <internal> final public method getLine ] {
    	}
     
    	Method [ <internal> final public method getTrace ] {
    	}
     
    	Method [ <internal> final public method getTraceAsString ] {
    	}
     
    	Method [ <internal> public method __toString ] {
    	}
    }
    }
    Alles anzeigen



    Das heißt die Exception Klasse hat eine __clone() Methode...

    Jetzt versuche ich ein Exception Objekt zu klonen:

    Code
    try {
    throw new Exception("Fehler");
    } catch(Exception $e) {
    echo $e->getMessage();
    $a = clone $e;
    }



    aber bekomme einen Fehler:

    Code
    Fatal error: Trying to clone an uncloneable object of class Exception in ...



    Kann es sein, dass diese integrierte Methode dafür angelegt wurde, dass diese dafür zuständig ist Kopien zu unterbinden?

    Danke, Nauti

    :omg:

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 6. Juni 2005 um 16:41
    • #2

    also, nachdem mein php scho a zeital her ist, kann ich dir aber insofern sagen, nachdem clone privat ist, wirst es auch nicht verwenden können. es dient lediglich zu internen zwecken und ist nicht für explizites cloning freigegeben.

    lg

  • nautiLus
    7
    nautiLus
    Mitglied
    Punkte
    425
    Beiträge
    78
    • 6. Juni 2005 um 16:46
    • #3

    Hi, das ist schon klar, aber __clone() ist eine "magische Funktion" die wird ausgeführt wenn man mittels clone eine Objektinstanz klonen will, deswegen ist es auch egal obs in dem Fall private oder was auch immer ist.
    Ciao Nauti

    :omg:

  • m.mueller
    1
    m.mueller
    Mitglied
    Punkte
    5
    Beiträge
    1
    • 23. Juni 2005 um 16:23
    • #4

    servus ;o)

    da die methode auf final gesetzt is, wirste mit dem clonen kein glück haben.
    final methoden können nicht geklont werden.

    mario.mueller[at]phperror[dot]com
    http://www.phperror.com

  • nautiLus
    7
    nautiLus
    Mitglied
    Punkte
    425
    Beiträge
    78
    • 23. Juni 2005 um 19:47
    • #5

    Also bin ich mit meiner Annahme richtig, dass Exception Objektinstanzen nicht geklont werden können ... das wars, danke!

    Nauti

    :omg:

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung