Portal > Foren > PHP > PHP-Programmierung > error-klasse oder was eigenes?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 04.04.2008, 17:22 Nach oben    #1
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.379
Standard error-klasse oder was eigenes?

Ich bin vor ein paar Tagen über set_error_handler gestolpert. Die Möglichkeiten fand ich ausreichend interessant, dass ich mir das mal näher angeschaut habe.

Das Beispiel des Handbuches habe ich ein wenig angepasst. Das gefällt mir soweit schon ganz gut.
Ich habe nun die Möglichkeit, dass SQL-Fehler auch entsprechend gehandelt werden; die Fehler in eine separate Datei geloggt werden und ich eine Mail bekomme.

Meine Frage aber ist; es gibt doch sicherlich schon ausgereifte Klassen dafür, oder?

Könnt ihr mir was empfehlen, wie ich da geschickt vorgehe? Ich denke, dass das alles in einer guten Klasse besser aufgehoben ist, als wenn ich mir da was zusammen sammel, oder?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.04.2008, 20:18 Nach oben    #2
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Hallo Jann,

an sich ist das Handling von Fehlern immer in Verbindung mit den von dir eingesetzten Komponenten zu sehen. Sollten diese beispielsweise dedizierte Fehler / Exceptions erzeugen, sollte der Error-Handler entsprechende Schnittstellen zur Verarbeitung haben. Das kann das Anzeigen einer Fehlerseite mit Stacktrace, Logging oder ein anderes Verhalten sein. Ist das nicht notwendig, reicht dir eigentlich ein einfaches Logging, wie du es bereits implementiert hast. Im Adventure PHP Framework habe ich einen eigenen ErrorHandler eingebaut, der Logging und Anzeige einer Fehlerseite beherrscht. Den Code kannst du dir in der Datei apps/core/errorhandler/errorHandler.php im ZIP-File http://adventure-php-framework.org/f...-php4_php5.zip ansehen.

Ab PHP 5 gibt es zusätzlich noch die Möglichkeit einen eigenen Exception-Handler zu implementieren und einzuhängen. Schau mal ins (englische!) Manual, ich glaube, das stehen einige gute Beispiele.

//EDIT: In PEAR gibt es dazu unter http://pear.php.net/package/PEAR_ErrorStack auch ein Modul.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.04.2008, 20:23 Nach oben    #3
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
//EDIT: In PEAR gibt es dazu unter http://pear.php.net/package/PEAR_ErrorStack auch ein Modul.
Gut, dass man es nicht runterladen kann und die Dokumentation ebenfalls nicht verfügbar ist.
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2008, 00:36 Nach oben    #4
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Zitat:
Zitat von Corvin Beitrag anzeigen
Gut, dass man es nicht runterladen kann und die Dokumentation ebenfalls nicht verfügbar ist.
Für PEAR-Gegner ist das natürlich ein gefundenes Fressen...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2008, 01:01 Nach oben    #5
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 691
Standard

Hey, dafür sind aber auch keine Bugs bekannt

Zum Topic: Ich finde, dass man es garnicht erst soweit kommen lassen sollte, dass ein Fehler entsteht und im Vorfeld bereits alel Möglichkeiten abfängt, die je auftreten könnten. Das macht es einem irgendwie leichter hinterher - finde ich, denn immerhin habe ich so die Möglichkeit innerhalb eines Scriptes auf eine ganz besondere Aunahme gezielt zu reagieren, anstatt mich hinterher mit einer allgemeingültigen, dafür aber eben nicht individuellen Lösung zufrieden geben zu müssen.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2008, 09:14 Nach oben    #6
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Für PEAR-Gegner ist das natürlich ein gefundenes Fressen...
Ich bin kein "PEAR-Gegner", falls du das damit andeuten wolltest..

Mich interessiert das Thema auch, wäre fein, wenn jemand das Paket mal hochlädt.
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2008, 13:44 Nach oben    #7
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 853
Standard

Zitat:
Zitat von MrNiceGuy Beitrag anzeigen
Zum Topic: Ich finde, dass man es garnicht erst soweit kommen lassen sollte, dass ein Fehler entsteht und im Vorfeld bereits alel Möglichkeiten abfängt, die je auftreten könnten.
Es gibt keine fehlerfreie Software, das kannst du knicken. Selbst wenn du deine Software via TDD entwickelst, wirst du nicht alle ungünstigen Kombinationen ungünstiger Umstände abgedeckt haben.

Zitat:
Das macht es einem irgendwie leichter hinterher - finde ich, denn immerhin habe ich so die Möglichkeit innerhalb eines Scriptes auf eine ganz besondere Aunahme gezielt zu reagieren, anstatt mich hinterher mit einer allgemeingültigen, dafür aber eben nicht individuellen Lösung zufrieden geben zu müssen.
Und genau das probiert Jann Hendrik hja anscheinend gerade umzusetzen: Aus einem unerwarteten Fehler quasi einen erwarteten zu machen und auf diesen adäquat zu reagieren.

Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2008, 13:49 Nach oben    #8
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

[OT]
Zitat:
Ich bin kein "PEAR-Gegner", falls du das damit andeuten wolltest..
Nein, nein. Ich hatte nur in der letzten Zeit einige Diskussionen zum Thema PEAR vs. Zend Framework und da wurde das "Fehlen von Informationen" als ein Argument genannt. Das ZF ist dabei aber auch nicht besser, denn die Tutorials verschweigen auch ganz oft die Details...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2008, 15:13 Nach oben    #9
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.379
Standard

Nun generell versuche ich schon so zu programmieren, dass keine Fehlermeldungen erscheinen.

Ich lese mir aber gerade erneut dieses Buch hier durch und habe daher beschlossen, dass ich auch bei unerwarteten Fällen keine Fehlermeldung ausgeben möchte.

Zusammen mit dem hier http://de2.php.net/set_error_handler gibt es dann eigentlich doch die gute Möglichkeit, das auch umzusetzen. Auf der einen Seite den dev-Modus, und mit einem einzigen Schalten in den produktiven Modus gewechselt, so Fehlermeldungen nicht mehr erscheinen, sondern geloggt werden und keine für einen Angriff verwertbaren Informationen preisgeben.

Damit möglichst schnell auf einen Fehler/eine Warnung reagiert werden kann sollte das ganze auch per Mail an mich gehen.

Meine Lösung funktioniert soweit, aber ich denke, dass ich nicht der erste bin, der sowas machen will, bzw. gemacht hat und es ggf. noch elegantere Formen gibt das zu realisieren.

Klar versuche ich nach Möglichkeit die Möglichkeiten auszuschließen, dass Fehlermeldungen den Ablauf stören, aber Bastian schon sagte; ich denke, dass es keine 100%-fehlerfrei Software gibt, die auch spätere voll Versionen berücksichtigt.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] Ein eigenes Templatesystem schreiben Corvin Tutorials 42 19.03.2008 17:58
Eigenes CMS aber wie? Berti PHP-Programmierung 7 06.10.2006 13:39
eigenes Template System mit Sprachunterstützung jjelliss PHP-Programmierung 61 15.09.2006 10:00
[Swing] Eigenes LookAndFeel erstellen? javra Desktop-Applikationen und Grafik 3 06.03.2006 19:54
Frage zum Tutorial: eigenes Template-System Waldvogel PHP-Programmierung 7 29.12.2005 19:18


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45