| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Ansonsten bin ich mal gespannt was die anderen so schreiben! EDIT: Die MP3-Version hat eine gute Qualität, wesentlich besser als in diesem JW-Player.
__________________ "Nobody is as smart as everybody" - Kevin Kelly — The best things in life aren't things Geändert von phpdummi (06.08.2009 um 21:59 Uhr). | |
| | |
| | |||
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.269
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Von der Theorie her würde ich grundsätzlich Exceptions an folgende koppeln: PHP: Exceptions - Manual Zitat:
RuntimeExceptions würde ich noch einmal jeweils mit Code markieren (2. Konstruktor-Parameter), USER, GENERAL, .. So kannst du auch RuntimeExceptions entschärfen in der Ausgabe (manchmal sind Details gut, manchmal nicht). Übrigens kannst du seit PHP 5.3 einen Exception-Stack aufbauen: PHP: Exception::__construct - Manual Zitat:
try-catch soll ja recht langsam sein, aber wenn man Ausnahmebehandlung ernst nimmt, sollte eigentlich jeder Fremdaufruf bzw. Hierarchie (einzeln oder Blockweise) in einen try-catch-Block (sofern die Fremdklasse überhaupt Exceptions wirft).
__________________ "Nuschel ich?" - "Was?" Geändert von Chriz (06.08.2009 um 22:14 Uhr). | ||
| | |
| | ||||
| Moderator und Wett-König | Hallo nikosch, Zitat:
Was die Auswirkung von Exceptions angeht, gibt es auch unterschiedliche Konzepte. "Kleine, spezialisierte" Exceptions dürfen dabei nie zu einem groben Fehlverhalten der Gesamt-Applikation führen, "große" Exceptions jedoch schon. Zu letzterem zählen vor allem Probleme, die ein Ausführen der Applikation nicht mehr möglich machen. Lokale Exceptions, die auf jeden Fall gefangen und behandelt werden können: Zitat:
Zitat:
Was das globale Handling von Exceptions angeht, so könntest du personalisierte Fehlerseiten bauen, in dem du konfigurierst, bei welcher Exception welche "schöne" Fehlermeldung angezeigt werden soll. Treffen alle konfigurierten Fälle nicht zu, gibt es eine allgemein Meldung. Ich hoffe, das hilft dir etwas weiter. Viele Grüße, Dr.E.
__________________ 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 (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |||
| | |
| | ||
| Erfahrener Benutzer | Zitat:
In jedem einzelnen Anwendungsmodul beispielsweise sinnvoll auf eine Exception zu reagieren, nur weil sie die aufgerufene Methode wirft, ist manchmal einfach unsinnig, denn der Aufrufer hat eine Selbstverantwortung, zu entscheiden ob eine Exception nun bedeutet, dass der Aufrufer mit anderen Programmteilen weitermachen kann oder ob sie bedeutet, dass sie zu einem irreparablen Zustand führen soll. Sprich: Entwickelt man völlig modular, ergibt sich die Schwere des Problems ergibt sich nicht immer zwangsläufig aus der Exception selbst. Und wenn man sich an diese Vorgabe hält, für ganz besondere Umstände im äußern Rahmen eine Art "Fallback" einzubauen, werden alle bis dato nicht gefangenen Exceptions als schwere Anwendungsfehler angesehen, was so zumindest erst einmal nichts völlig verkehrtes ist. generell gilt es aber, wie hier angeklungen ist, selbst zu verstehen, was man mit einer Exception erreichen will. Generell ist eine Exception wertneutral eine Exception (=Ausnahme zu deutsch). Also eine Ausnahme im Programmablauf. Exceptions können logisch gesehen folgendes sein: - Irreparable Programmzustände (DB-Connect fehlerhaft usw.) - Logische Fehler, die der Aufrufer fängt und zur Kenntnis nimmt um seinerseits eine alternative Verarbeitung zu machen (zum Beispiel Exceptions zum Anzeigen einer fehlgeschlagenen Validierung, was jedoch den weiteren Programmablauf nicht massiv stört) - Logische Fehler, die vom Aufrufer provoziert werden. Exceptions werden sogar manches mal als eine Art Informationsträger genutzt, sind also nicht zwangsläufig gleichbedeutend mit einem Fehler. Bevor ich also soweit gehe, um mir um die Fehlerbehandlung als solches Gedanken zu machen, versuche ich immer erst, mir Gedanken zu machen, was meine Exception eigentlich bewirken soll und in welche Kategorie sie passt. Manches mal ergibt sich die Behandlung auch erst aus dem Kontext. Wo man bei der normalen Anwendung im Normalfall die Datenbankfehler bis oben hin durchreichen lässt um dann eine allgemeine Fehlerseite o.ä. einzublenden, so nimmt man beispielsweise während der Installation einen fehlgeschlagenen DB-Connect auf andere Art und weise zur Kenntnis.
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih | |
| | |
| | |||
| Moderator und Wett-König | Zitat:
Zitat:
__________________ 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 (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| | |
| | |
| Erfahrener Benutzer | Ich hab mich ebbes blöd ausgedrückt. Wie dem auch sei, ich wollte mit meiner langen Rede eigentlich vor allem darauf hinaus, dass der Aufrufer selbst meist erst über die Schwere des Fehlers entscheidet. Manches mal sind die gleichen Fehler so schwerwiegend, dass sie vom Aufrufer nicht mehr sinnvoll verarbeitet werden können, manches mal sind sie eine Information für den Aufrufer. Der DB-Connect ist in Zusammenhang mit dem Unterschied zwischen dem Aufrufer während dem Betrieb und dem Aufrufer während der Installation ein von mir gerne genommenes Beispiel. Obwohl vom gleichen Modul eine ConnectionFailedException generiert werden kann, mag der eine Aufrufer diese als fatale Exception sehen und kann keine sinnvolle Webseite anzeigen. Im Zweifel wird auch nicht geschaut, was genau falsch ist, denn diese Detailinfo hat den Besucher der Seite nicht zu interessieren. Die Installationsroutine jedoch gibt dem Benutzer das reguläre Formular aus und weist ihn darauf hin, dass seine Informationen wohl nicht korrekt waren. Zudem ist für die Installationsroutine durchaus interessant, ob der Connect nicht klappte oder das Passwort falsch war oder die DB nicht existierte... Bei dir hatte ich das etwa so verstanden, dass du der Meinung bist, man sollte gewisse Exceptions eigentlich immer sinnvoll weiterverarbeiten können. Das mag auch in 95% der Fälle stimmen aber ebend in 5% der Fälle nicht.
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| | |
| | |
| Moderator und Wett-König | Wir verstehen uns also prächtig! Freut mich.
__________________ 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 (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Exceptions dateiübergreifend abfangen? | dauerbaustelle | PHP-Fortgeschrittene | 1 | 04.06.2009 15:00 |
| Frage zu try, throw und exceptions | litterauspirna | PHP Tipps 2009 | 6 | 17.05.2009 14:21 |
| PHP: Exceptions - Teil 2 | Zergling-new | Tutorials | 5 | 15.03.2009 11:00 |
| Wann verwendet ihr Exceptions? | T0bbes | Software-Design | 23 | 11.02.2009 00:43 |
| PHP: Exceptions - Teil 1 | Zergling-new | Tutorials | 4 | 05.12.2007 23:31 |
| PHP-Errors zu exceptions | brian johnson | PHP-Fortgeschrittene | 6 | 06.11.2007 12:45 |
| Welche Art von Exceptions sollte man werfen? | Zergling-new | PHP-Fortgeschrittene | 1 | 24.09.2007 13:29 |
| erbende Exceptions mit PHP 5.1.1 nicht mehr möglich? | HStev | PHP-Fortgeschrittene | 4 | 27.01.2006 14:32 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php exception durchreichen, php nach exception fehlerseite, php exception weitergeben, php exception validierung, php exceptions schön ausgeben, php error exception abfangen, php exception abfangen und weitermachen, systematik von php, php exception wird nicht gefangen, php try catch exceptions werden nicht gefangen, php exception global abfangen, php nach exception weiter ausführen |