phpbar.de logo

Mailinglisten-Archive

[php] Exceptions selbst gebaut

[php] Exceptions selbst gebaut

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mit Okt 25 09:02:04 CEST 2006


Hallo Friedhelm,

Am Dienstag, 24. Oktober 2006 22:26 schrieb Friedhelm Betz:
> Lutz Zetzsche wrote:
> > Im Nachgang unserer gestrigen Diskussion habe ich übrigens den
> > Eindruck gewonnen, daß die Seite im Online-Handbuch, die Exceptions
> > erklärt, dies nicht wirklich gut tut. Die Beispiele sind für das
> > Handbuch ungewöhnlich unvollständig und schlecht.
>
> bugs.php.net
> Patches sind immer willkommen ;-)

das ist eigentlich kein Bug. :-) Außerdem habe ich gerade in den "User 
contributed Notes" einen Beitrag gefunden, der genau das anspricht, was 
mir fehlte:

http://www.php.net/manual/en/language.exceptions.php
"06-May-2005 07:15
PHP5 supports exception throwing inside a function, and catching it 
outside that function call. There is no mention of this in 
documentation but it works just fine, as tested by this sample code:

[...]

Further tests show that nested functions with exceptions, methods 
throwing exceptions, etc all work the same way. This is like declaring 
all classes (or methods) in Java as "class ClassName throws Exception". 
While I consider this a good thing, you should be aware that any thrown 
exception will propagate up your stack until it is either caught or 
runs out of stack."

In der Doku sind throw und try/catch eben leider immer zusammen 
verwendet, obwohl sie eigentlich an völig separaten Stellen im Code 
auftreten können und der Fehler zwar auch schon an Ort und Stelle 
behandelt, aber eben auch zusätzlich oder ausschließlich woanders 
abgefangen werden kann.

Das Fehlen dieser Informationen ist vermutlich auch das, was diese 
Diskussion ursprünglich ausgelöst hat. Ich glaube auch, daß viele, die 
bisher nie oder wenig mit Exceptions zu tun hatten und sich nur auf 
diese Seite stützen, Exceptions in der Folge auch gar nicht richtig 
nutzen (können), was eigentlich schade ist.

Macht es Sinn, den Hinweis noch zu geben, wenn es schon in den "User 
Contributed Notes" steht? Ich meine, ich fände es wichtig, daß es in 
der Doku selbst steht, aber vielleicht werden ja vom Dokumentationsteam 
automatisch solch wichtiges Notes in die eigentliche Doku übernommen. 
Weißt Du was darüber, Friedhelm? Nicht, daß ich dann jemanden umsonst 
aufschrecke... :-)

Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive