Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Bitte Warning erklären (https://www.delphipraxis.net/156651-bitte-warning-erklaeren.html)

Shark99 9. Dez 2010 19:36

AW: Bitte Warning erklären
 
@stahli

Es ist klar dass das System inkonsitenz wird. Aber durch die Exceptions ist es besser, weil das Programm dann nur "nicht funktioniert" anstatt Amok zu laufen.

s.h.a.r.k 9. Dez 2010 19:38

AW: Bitte Warning erklären
 
@stahli: Aber jetzt stell dir mal vor, dass immer eine TStringList erzeugt und dann mit Daten befüllt wird. Irgendwann kracht das ganze und der Speicher wird nicht freigegeben. In kleinen Anwendungen ist das wahrlich kein Problem, aber bei großen, die auch nicht nur mal schnell ausgeführt und wieder geschlossen werden, spielt sowas sehr wohl eine Rolle. Da der Speicher immer voller wird und es gibt eben nicht unendlich Speicher, auch wenn ich das immer gerne hätte :mrgreen: Daher einfach von Anfang an sauber programmieren. Klar, es gibt immer auf das Aufwand/Nutzen-Verhältnis an, gewöhnt man sich aber daran, dann sind auch mal größere Projekte absolut kein Problem und man steht eben auf der sicheren Seite. Aber ich weiß, Informatiker sind bekanntermaßen faul -- meine Person natürlich mit eingeschlossen 8-)

Und zum Theme Inkonsistenz: Naja, durch Exception-Verwendung soll ja genau das verhindert werden. Siehe DeddyH:
Zitat:

[edit] Achja, Exception-Handling ist ja nicht dazu gedacht, mögliche Fehlerquellen nicht im Vorfeld ausschließen zu müssen, sondern eher dazu, auf Fehler reagieren zu können, die nicht vorhersehbar sind (Hardwaredefekt, volle Festplatte oder sowas). [/edit]
Durch Exception-Handling baust du ja gerade Code ein, der das System konsistent hält.

KrasserChecker 9. Dez 2010 20:16

AW: Bitte Warning erklären
 
Zitat:

Zitat von Bernerbaer (Beitrag 1067512)
Für mich ist folgendes Konstrukt eigentlich der übersichtlichste und sauberste Weg um das Bsp von sahli umzusetzen.
Delphi-Quellcode:
var
  list1: TStringList;
  list2: TStringList;
begin
  list1:=nil;
  list2:=nil;
  try
    list1 := TStringList.Create;
    list2 := TStringList.Create;
 
    ...
  finally
    list1.free;
    list2.Free;
  end;

es sei denn man macht das hier:

Delphi-Quellcode:
var
  list1: TStringList;
  list2: TStringList;
  ol: TObjectList;
begin
  ol := TObjectList.Create;
  try
    list1 := TStringList.Create;  ol.Add(list1);
    list2 := TStringList.Create;  ol.Add(list2);
 
    ...
  finally
    ol.free;
  end;
was ich ja übersichtlicher finde.

s.h.a.r.k 9. Dez 2010 20:24

AW: Bitte Warning erklären
 
Ist ein interessanter Ansatz, das stimmt! Aber so hast du mehr Speicherverwaltung und die CPU wird "stärker" belasetet, wobei sowas wahrlich ziemlich relativ ist. Ich bevorzuge die einfachste Lösung, da es so für andere auch verständlicher ist, imho.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz