Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   wie funktioniert try except (https://www.delphipraxis.net/134850-wie-funktioniert-try-except.html)

Hansa 30. Mai 2009 19:55

Re: wie funktioniert try except
 
Dass die relevanten Source-Teile identisch waren, das hat auch keiner gemerkt. :mrgreen:

Zitat:

Zitat von Original
Zitat:

Zitat von Hansa
Das kommt davon, wenn man alles ignoriert und nur guckt, dass es läuft. Egal wie. 8)

Keiner hat das zur Kenntnis genommen :

Zitat:

[Hinweis] Unit1.pas(30): Auf 'a' zugewiesener Wert wird niemals benutzt
[Hinweis] Unit1.pas(28): Auf 'b' zugewiesener Wert wird niemals benutzt
stammt von hier :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 0;
(*
    ShowMessage(inttostr(a)); //Hier wird auf a zugegriffen, daher keine Optimierung
    ShowMessage(inttostr(b)+' Kein Fehler')
*)
  except
    ShowMessage('Fehler')
  end;
end;
Leute, die so was permanent ignorieren, denen sollte der Delphi-Compiler besser die Arbeit verweigern, anstatt das selbst auch noch zu ignorieren. :mrgreen: Für Testzwecke ist das vielleicht noch hinzunehmen, irgendwelche überflüssigen Variablen zu haben, aber der Normalfall sollte das nicht sein.

Das hier z.B. wird NICHT compiliert :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 0;
Zitat:

[Fehler] Unit1.pas(30): Division durch Null
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Edit :

Zugriff auf a oder b geschieht auch hier nicht :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 0;
(*
    ShowMessage(inttostr(a)); //Hier wird auf a zugegriffen, daher keine Optimierung
    ShowMessage(inttostr(a)+' Kein Fehler')
*)
  except
    ShowMessage('Fehler')
  end;
end;


KORREKTUR :

Das kommt davon, wenn man alles ignoriert und nur guckt, dass es läuft. Egal wie. 8)

Keiner hat das zur Kenntnis genommen :

Zitat:

[Hinweis] Unit1.pas(30): Auf 'a' zugewiesener Wert wird niemals benutzt
[Hinweis] Unit1.pas(28): Auf 'b' zugewiesener Wert wird niemals benutzt
stammt von hier :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 2; // vorher stand hier : a := 1 div 0;
(*
    ShowMessage(inttostr(a)); //Hier wird auf a zugegriffen, daher keine Optimierung
    ShowMessage(inttostr(b)+' Kein Fehler')
*)
  except
    ShowMessage('Fehler')
  end;
end;
Leute, die so was permanent ignorieren, denen sollte der Delphi-Compiler besser die Arbeit verweigern, anstatt das selbst auch noch zu ignorieren. :mrgreen: Für Testzwecke ist das vielleicht noch hinzunehmen, irgendwelche überflüssigen Variablen zu haben, aber der Normalfall sollte das nicht sein.

Das hier z.B. wird NICHT compiliert :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 0;
Zitat:

[Fehler] Unit1.pas(30): Division durch Null
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Edit :

Zugriff auf a oder b geschieht auch hier nicht :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 0;
(*
    ShowMessage(inttostr(a)); //Hier wird auf a zugegriffen, daher keine Optimierung
    ShowMessage(inttostr(a)+' Kein Fehler')
*)
  except
    ShowMessage('Fehler')
  end;
end;

DeddyH 30. Mai 2009 20:01

Re: wie funktioniert try except
 
Wie oft willst Du das eigentlich noch posten?

jaenicke 30. Mai 2009 20:03

Re: wie funktioniert try except
 
Zitat:

Zitat von Hansa
Das hier z.B. wird NICHT compiliert :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var a,b:integer;
begin
  b := 0;
  try
    a := 1 div 0;

Doch, in Delphi 3 schon noch glaube ich. Da war die Compilerentwicklung noch nicht so weit, dass der so intelligent war und gemerkt hat, dass da eine Division durch 0 passiert.
Auch viele andere Optimierungen gab es da ja noch nicht, weshalb Programme da teilweise merklich langsamer sind.

DeddyH 30. Mai 2009 20:05

Re: wie funktioniert try except
 
IIRC ging das noch nicht einmal in Delphi 1.

jaenicke 30. Mai 2009 20:16

Re: wie funktioniert try except
 
Zitat:

Zitat von DeddyH
IIRC ging das noch nicht einmal in Delphi 1.

Na wenn du das sagst, wirds schon so sein. Ich bin nie auf die Idee gekommen sowas zu schreiben. :mrgreen:
Und zudem nutze ich ja Delphi 3 schon einige Jahre nicht mehr.

Hansa 30. Mai 2009 20:19

Re: wie funktioniert try except
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von DeddyH
IIRC ging das noch nicht einmal in Delphi 1.

DIV 0 wurde wohl nie compiliert. Mein Museum ist noch verfügbar. IMHO neu sind lediglich die Hinweise. Compiler-Verhalten ist gleich geblienen. Beweis : siehe Anhang. :mrgreen:

DeddyH 30. Mai 2009 20:26

Re: wie funktioniert try except
 
Das wollte ich doch meinen. [ironie] Aber mit den alten Versionen kann man auch nicht arbeiten, ich frage mich, wie wir das früher gemacht haben :zwinker: [/ironie]

[edit] Ironie-Tags hinzugefügt, das ging wohl irgendwie unter *g* [/edit]

Satty67 30. Mai 2009 20:28

Re: wie funktioniert try except
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von DeddyH
IIRC ging das noch nicht einmal in Delphi 1.

Auch nicht bei Borland Pascal 7 (Turbo Pascal 6 sicher auch nicht, aber hab' ich grad nicht installiert)
Compile-Error 62: Division durch 0

€: Ach mist, hansa war schneller... btw. bei mir kommt die Fehlermeldung (in BP7) über der falschen Zeile, nicht in einem Extra kleinen Fenster. Mein BP-7 sieht auch viel moderner aus...

PS: Was Ihr alle gegen den Komfort von Delphi 3-7 habt... ich nutze Delphi 5 und Turbo Explorer 2006. Der Komfort von Delphi 5 reicht dem Hobby-Programmierer locker...

Hansa 30. Mai 2009 20:42

Re: wie funktioniert try except
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du hast ja früher auch von Hand geschrieben und wohl auch programmiert. Heute wird nur noch geklickt, F9 gedrückt bis es geht und dann mit Cut and Paste weitergemacht. Geht immer noch nichts, dann wird notfalls noch hier gefragt. :mrgreen:

@Satty : Frühmerker. :zwinker: Und blauer Bildschirm hat nichts mit modern zu tun. Das da ist Turbo-Analyst. Mit kleinem Sourcecode-Formatter, Profiler etc.

Satty67 30. Mai 2009 20:46

Re: wie funktioniert try except
 
@Hansa:
Nein, dachte wegen der IDE (Menü und CO), aber wenn es ein anderes Programm war...

So... wird ja tierisch OT hier, gleich gibt es mit dem Rohrstock vom Moderator. Ich muss nicht verwarnt werden, ich geisel mich jetzt selbst etwas und lasse es ab jetzt OT (in diesem Thread) zu posten. :shock: :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 Uhr.
Seite 3 von 4     123 4      

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