Einzelnen Beitrag anzeigen

FarAndBeyond
(Gast)

n/a Beiträge
 
#9

AW: Antialiasing, Kantenglättung für Memo, Edit und Label

  Alt 24. Jul 2015, 21:08
@Dalai
Ja, das Thema Exception-Handling ist gerade voll mein Ding, da ich mein erstes richtiges Programm fertiggestellt habe und jetzt genau vor der Frage stehe was genau abgesichert werden sollte und was Overkill ist und wie ich das Ganze am besten anpacke.

Ich hab' leider kein einziges komplettes, ganzheitliches Tutorial zu dem Thema gefunden. Es gibt "try - except - end" und "try - finally - end" und ja man kann diese auch auf mehrfache, verschiedene Weise verschachteln... aber bezogen auf die echte Praxis bringen solche Tutorials gar nichts! Es bleiben viel zu viele Fragen offen und ein richtiges Programm besteht auch nicht aus nur einer Prozedur.

Beispiel:
1)Ich hab' in FormClose mehrere Dinge abzuarbeiten. Damit das möglichst maximal läuft muß ich alle Prozeduren in sehr kleine Prozeduren unterteilen. Nur so kann ich das maximal mögliche auch wirklich sichern. Wenn also 10 Dinge gespeichert werden sollen und es zu einer Exception kommt bei Ding Nr. 1 dann wird logischerweise gar nichts gespeichert.
Wenn ich allerdings jeden Schritt in kleine Prozeduren packe, die wiederum abgesichert sind, dann kann ich bei einer Exception bei Ding Nr. 1 immerhin noch 9 Dinge sichern.
Fazit: Kleine Prozeduren sich ganz offensichtlich besser, aber auch mehr Arbeit.

2)Nach einem Except sollte man wohl tunlichst nur abgesicherte Prozeduren einsetzen, denn was ist wenn nach einer Exception das was abgearbeitet werden soll wieder zu einer
Exception führt?
Fazit: Also wenn schon, dann auch ganzheitlich und überall, ansonsten kann man es auch gleich ganz lassen... oder was???

3)Ich unterteile grundsätzlich alles in zwei Kategorien: 1. Eine Exception würde die Grundfunktion des Programmes nicht beeinträchtigen und 2. Eine Exception würde die Programmausführung unmöglich oder unhandlich werden lassen. Und darüber hinaus stellt sich noch die Frage braucht mein Programm eine StatusBar oder einen ErrorLog, dann muß das logischerweise auch im Exception-Handling mit berücksichtigt werden.

4)Wie sieht das aus wenn ich in OnDestroy etwas freigeben möchte aber z.B. in OnClose nichts gemacht wird. Schreibe ich jetzt "try-except-end" in ein leeres OnClose nur um sicherzugehen, dass ich das OnDestroy auch in jedem Fall erreichen kann. Kann es sein, dass verschiedene Programme oder Treiber eine Exception verursachen während sich das Programm gerade in OnClose oder OnDeaktivate befindet. Klingt natürlich schräg, da ja gar nichts abzuarbeiten ist... die Prozeduren gibt es ja eigentlich gar nicht... !?
Aber als Anfänger sich das genau die Fragen die einen beschäftigen...

5)Ich hab' noch nie eine Fehlermeldung vom OS bekommen die mir tatsächlich wirklich weitergeholfen hätte, also verstehe ich logischerweise nicht warum ich diese nicht komplett verhindern sollte und gegen richtige, eigene austauschen sollte. Der Einzige, der vielleicht ein klein Wenig mit "Fehler in Adresse Blabla.. Read BlaBla" anfangen könnte, wäre wohl ein AssemblerProgrammierer, aber der kann mir dann auch nicht sagen in welcher Prozedur das passiert ist. Ich hab' mir 'ne Mini-Prozedur gebaut, die ein echtes NotifyWindow erstellt um dann eine schöne, verständliche und saubere ErrorMeldung ausgeben zu können.
Also :
1) Topmost, 2) Nur schließbar mit CTRL+ALT+O+K, 3) Kein Button, Kein Alt-F4, Kein X rechts oben zum Schliessen..., 4) Ordentliches Deutsch oder English das man auch versteht + die Prozedur ist mit angegeben (was aber wieder zu noch mehr Arbeit führt und noch kleinere Prozeduren hervorbringen würde bzw. hervorbringt).

Eine Meldung, die nicht topmost ist bekomme ich oft erst nachdem ich mehrere Fenster geschlossen habe zu Gesicht und eine Meldung, die weggeklickt werden kann oder durch einmal zu oft ALT+F4 drücken verschwindet ohne gelesen zu werden ist ebenfalls untragbar...
Es gibt zu viele Programmierer die das so machen und ich verstehe nicht was das soll. Sauber ist was anderes...

Solche und andere Fragen stellen sich logischerweise jedem, der mal ein Programm schreibt und das zum ersten Mal macht...
Wo ist jetzt das Tutorial das ganzheitlich auf diese Dinge eingeht???
Ich hatte bis jetzt noch kein Glück so eins zu finden, aber vielleicht hab' ich die falschen Suchbegriffe eingegeben...

Gruß
Martin
  Mit Zitat antworten Zitat