AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sämtliche Fehlermeldungen abfangen

Ein Thema von Nicolai1234 · begonnen am 28. Jul 2005 · letzter Beitrag vom 29. Jul 2005
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Sämtliche Fehlermeldungen abfangen

  Alt 28. Jul 2005, 23:39
Zitat von Nicolai1605:
Ist es eigentlich sinnvoll, - mehr oder weniger - alle Functionen/Proceduren in Try-Except einzuschachteln?
Aus meinen Exception Tutorial:
Zitat:
Dass die strukturierte Ausnahmebehandlung funktioniert ist weniger eine Aufgabe des Betriebssystems,
sondern eigentlich des Compilers. Der Compiler muss am Anfang und am Ende von Ausnahmeblöcken
speziellen Code erzeugen. Außerdem muss der Compiler zum Ausführen Tabellen mit unterstützenden
Datenstrukturen anlegen und Callback Funktionen bereitstellen, die das Betriebssystem aufrufen kann, damit
es die Ausnahmeblöcke durchlaufen kann. Desweiteren ist der Compiler auch dafür zuständig den
Stackframe vorzubereiten und für sonstige zusätzliche Informationen.
Und:
Zitat:
Sinnvoller Einsatz von Exceptions
Generell teilt man den Programmfluss in drei Stufen ein: lowlevel Funktionen, highlevel Funktionen und GUI
Funktionen. Normalerweise rufen GUI Funktionen wie Events nur die komplexen highlevel Funktionen auf.
Lowlevel Funktionen sollten nun Exception frei sein. Die highlevel Funktionen sollten mit Exceptions arbeiten,
da deren Programmierung von aussagekräftigen Funktionsrückgabewerten viel zu kompliziert werden kann.
Exception erleichtern also in highlevel Funktionen deren Aufbau wesentlich.
Exceptions sollten niemals in Release-Funktionen benutzt werden. Der Grund ist ganz einfach: Solche
Funktionen werden meist gruppiert in übergeordneten Funktionen auftreten. Würde nun eine Exception
ausgelöst, würden die nachfolgenden Release-Funktionen ein Speicherleck verursachen. Würde man es
trotzdem machen, müsste der Programmierer nun jeden Aufruf solcher Release-Funktionen separat mit
einem try-finally schützen. Der Sinn und Zweck von Exception würde sinnlos werden.
Auf der anderen Seite ist es sinnvoll Exceptions in Allocator-Funktionen zu verwenden. Also in Funktionen in
denen Speicher angefordert wird. Tritt dort eine Exception auf, wird durch die Exception verhindert, dass
weiter sinnloser Speicher allokiert wird.

Try-except-Blöcke sollten immer mit Bedacht und sparsam eingesetzt werden. Ein vollständiges
"Abklemmen" aller Exceptions per try-except-Block ist fast immer schlecht aus Sicht der Wartung des
Programmes. Try-except-Blöcke sollten also gezielt nur auf einige Exception-Typen reagieren. Der Grund ist
offensichtlich. Das Ziel des Exception-Handlings sollte es sein für den Programmierer aussagekräftige
Ausnahmebedingungen für den Programmfluss zu visualisieren. Setzt man try-except-Blöcke unüberlegt ein,
so kann man dies Ziel nicht erreichen und der Vorteil von Exceptions geht verloren.
Generell gilt: Exceptions nur dann auslösen, wenn eine Bedingung eintrittunter der der Programmfluss
keinesfalls fortsetzbar ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
 


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 are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz