php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 04-03-2006, 19:16
Cedric
 Newbie
Links : Onlinestatus : Cedric ist offline
Registriert seit: Jan 2003
Beiträge: 9
Cedric ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP5 Exceptions (bin ich zu doof??)

Hi,
ich rätsle hier über ein Problem, dass ich nicht verstehe.
Es geht um Exception handling in PHP5.

also ich habe 3 klassen, die alle von einander erben (die parameter sind immer die der konstruktoren):

Exception (PHP5 intern)
--- SystemException($errorsignal, ...)
-------- IOException ($errorsignal, $filename)
--------------- FileNotFoundException($filename)


und eine ExceptionCollection klasse die direkt von SystemException konstruktor gefüttert wird. (ist auch nicht so wichtig, nur da ist mir der fehler erst aufgefallen.

Nun zum Problem:
also ich werfe FileNotFoundException('test.xml'). der konstruktor macht eigentlich nur:
parent:__construct("FileNotFound", $filename)

und die IOException::__construct($signal, $filname) macht im prinzip nur:
parent::__construct($signal, $filename)


SystemException macht dann die verarbeitung der exception und das hinzufügen zur ExceptionCollection

was ich nun nicht verstehe: ich habe obwohl ich FileNotFoundException nur einmal werfe zwei einträge in die ExceptionCollection. (Beide einträge vom typ: Object FileNotFoundException)


wenn ich mal einfach nur ein paar ausgaben rein machen sieht man das sowohl SystemException, als auch IOException zweimal ausgeführt werden (dadurch dann auch der doppelte eintrag in der collection) FileNotFoundException dagegeben nur einmal.

Aber es kommt noch bunter:

wenn ich jetzt in der FileNotFoundException::__construct() den aufruf der parent::__construct() aus kommentriere führt er den IOException::__construct trotzdem (einmal) aus noch noch besser ist er weiß sowohl das richtige $errorsignal also auch den $filename (es wird nicht in irgendwelche eigenschaften gespeichert oder ähnliches)

vielleicht könnt ihr mir das ja mal erklären?
hier noch ein paar code ausschnitte:

Code:
class SystemException
 extends Exception
{
        function __construct($errorsignal)
        {
             //...
            SystemExceptionCollection::Add($this);
        }
}

class IOException
 extends SystemException
{
        function __construct($errorsignal, $filename)
        {
             parent::__construct($errorsignal, $filename);
        }
}

class FileNotFoundException
 extends IOException
{
        function __construct($filename)
        {
             parent::__construct("FileNotFound", $filename);
        }
}
Mit Zitat antworten
  #2 (permalink)  
Alt 05-03-2006, 12:33
Cedric
 Newbie
Links : Onlinestatus : Cedric ist offline
Registriert seit: Jan 2003
Beiträge: 9
Cedric ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hat sich erledigt...

irgendwie hat ZendStudio eine zeile unterschlagen... als ich das script kopiert habe, standen dort plötzlich zwei parent::__construct()...

trotzdem danke für jeden der sich gedanken gemacht hat
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:57 Uhr.