AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ersetzt try..except begin..end?

Ein Thema von messie · begonnen am 20. Sep 2007 · letzter Beitrag vom 20. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23   
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:22
Moin,

eine Frage zur Hierarchie bei der Codeabarbeitung: entspricht
Delphi-Quellcode:
if Moin then
try
  //..
except

end;



if Moin then
begin
  //...
end;
?

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:24
nein aber:
Delphi-Quellcode:
if Moin then
try
  //..
except

end;



if Moin then
try
  begin

  end;
except
  begin

  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:27
wäre nie auf die idee gekommen, aber bei mir tuts das sehr wohl.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:29
Habe es mal getestet,

Delphi-Quellcode:
  
   i := 0;
   If i = 1 Then
   Try
      ShowMessage('1');
      ShowMessage('2');
   Except
   End;
Es wird keine der Messages angezeigt.

Delphi-Quellcode:
   i := 0;
   If i = 1 Then Begin
      ShowMessage('1');
      ShowMessage('2');
   End;
Es wird ebenfalls keine der Messages angezeigt.

Delphi-Quellcode:
   i := 0;
   If i = 1 Then
      ShowMessage('1');
   ShowMessage('2');
Es wird Message 2 angezeigt.

Somit ist klar, dass try..except sich diesbezüglich wie begin..end verhält
  Mit Zitat antworten Zitat
Meister Röhrich

Registriert seit: 20. Sep 2007
3 Beiträge
 
#5

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:29
doch. eigentlich lässt sich die frage mit "ja" beantworten. der try..except-block würde nur bei moin=true ausgeführt - genau wie der begin..end-block.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:43
Dafür gibt es zwei Referenzen:

a) die Delphi-Hilfe
b) der Borland Style-Guide

Zwischen try und except gehört kein begin / end.
Genauso wenig wie zwischen except und dem dazugehörenden end.

also soll es so aussehen:
Delphi-Quellcode:
try
  Anweisung1;
  Anweisung2;
  Anweisung3;
except
  Anweisung4;
  Anweisung5;
end;
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#7

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:45
Das ist doch im Prinzip das Gleiche wie bei repeat until, da wird alles was da zwischen ist eingeschlossen un smoit kein begin end benötigt...
Richard Mahr
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#8

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 08:50
Wenn ich nach except auf die Exception-Klasse Zugriff haben will, bekomme ich den nur mit
Delphi-Quellcode:
try
   //..
except
  on e:meineException do
  begin
  //..
  end;
end;
Also nicht ganz eindeutig. Zumal in dem Beispiel nur hierarchisch gleiche Anweisungen vorkommen. Ich hab' öfter mal verschachtelte try..except und try..finally-Blöcke.

Wo finde ich denn den Style Guide?

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 09:08
Den Style-Guide (oder zumindest Hinweise darauf) sollte mit der Suche hier im Forum zu finden sein.
Ansonsten google mit entsprechenden Begriffen füttern.

Verschachtelte try..except funktionieren auch ohne begin/end.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#10

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 09:15
try..except..end ist genau wie begin..end, repeat..until, while..end, case..end eine Anweisung (mit der Besonderheit, dass innderhalb dieser Anweisung weitere Anweisungen stehen können). Eine solche Anweisung kann überall stehen, wo auch eine 'normale' Anweisung stehen kann und wird als ganzes abgearbeitet.
Insofern lautet die Antwort: Nein. Begin..end wird nicht 'ersetzt' es ist eine gleichwertige Anweisung (oder auch Anweisungsblock, wers lieber mag). Ein try..except kann auch ein a:=7; 'ersetzen'.

Ich persönlich halte es aber für sinnvoller, try..except nach einem If trotzdem in einem Begin..End zu kapseln, da sich dadurch die Lesbarkeit erhöht.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:53 Uhr.
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