AGB  ·  Datenschutz  ·  Impressum  







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

Allgemeines zun Exceptions

Ein Thema von Borti · begonnen am 5. Aug 2004 · letzter Beitrag vom 11. Aug 2004
 
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#1

Allgemeines zun Exceptions

  Alt 5. Aug 2004, 10:32
Guten Morgen,
Inzwischen hat sich bei mir eine ganze Reihe Fragen zum Thema Exceptions angesammelt, die ich euch gern stellen würde:
Die erste wäre, ob GetTickCount ein Hardware-Zugriff ist und somit über try...except geschützt werden muss.
Wie viel sollte ich überhaupt in den geschützten Block reinschreiben? Bei meinem Beispiel soll wirklich der Button2 nur frei geschaltet werden, wenn die Konvertierung geklappt hat:
Code:
procedure TForm1.Button1Click(Sender: TObject);
a:integer;
begin
 try
  a:=strtoint(edit1.text);
  Button2.Enabled:=true;
 except
  showmessage('Bitte geben Sie einen Integer-Wert ein.');
 end;
end;
Aber ich könnte ja auch einfach über exit abbrechen:
Code:
procedure TForm1.Button1Click(Sender: TObject);
a:integer;
begin
 try
  a:=strtoint(edit1.text);
 except
  showmessage('Bitte geben Sie einen Integer-Wert ein.');
  exit;
 end;
 Button2.Enabled:=true;
end;
Aber zu welcher von den beiden Methoden würdet Ihr mir raten?

Der Punkt, der mich am meisten beschäftigt, ist der Schutz von TStrings. Die Methode TStringList.create soll ja immer über try...finally geschützt werden, was aber bei meinem Programm nicht möglich ist, da ich TStringList.create im Event Form1.OnCreate und TStrings free im Event Form1.OnClose aufrufe:
Code:
var s:TStrings;

procedure TForm1.FormCreate(Sender: TObject);
begin
 try
  s:=TStringList.Create;
 except
  showmessage('s konnte nicht erzeugt werden.');
  s.Free;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 s.Free;
end;
geht das so, wie ich’s gemacht habe auch in Ordnung?

Was mich auch ein bisschen stutzig macht, ist, dass in der Delphi-Hilfe nicht etwa TStringList.Create sondern TStrings.add geschützt wird. Der Speicher für den TStrings wird doch aber mit create reserviert und mit add nur aufgefüllt und nicht umgekehrt. Warum schlägt dann Borland diese Variante vor?

Zu guter letzt hab ich in der Projektdatei den Code Application.CreateForm(TForm1, Form1) gefunden. Muss ich den nicht auch schützen?

Danke,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  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 04:16 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 by Thomas Breitkreuz