Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Exception erzeugen
eraser_seb - Fr 27.08.10 08:42
Titel: Exception erzeugen
Hallo ich habe ein problem mit Exceptions.
Ich wollte eine Exception auslösen, aber wenn ich die Exception auslöse kommt ein Fehler. "Zugriffsverletzung ..."
Quellcode Beispiel
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure pruefezahl(zahl : integer); begin if zahl = 0 then raise Exception.create('zahl ist null'); end;
procedure test; begin try pruefezahl(0); except on e:exception on showmessage(e.message); end; end; |
Wenn die Exception ausgelöst wird kommt die zugriffsverletzung.
Bitte weiss nicht warum die Zugriffsverletzung kommt.
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am Fr 27.08.2010 um 12:47
Stundenplan - Fr 27.08.10 09:02
Also bei mir kommt da keine Zugriffsverletzung, ich sehe da nur die "Zahl ist null"-Meldung!:nixweiss: Außerdem heißt das on e:exception do showmessage(e.message);.
Viele Grüße,
Stundenplan.
thepaine91 - Fr 27.08.10 09:29
In dem Fall reicht ein raise im except Block.
Bergmann89 - Fr 27.08.10 10:37
Hey,
läuft das ganze im Debugger? Der zeigt dir alle Exceptions an, auch wenn sie danach abgefangen werden. Einfach nach der Exception nochma F9 drücken oder die Exe probieren.
@thepaine91: Ich glaube das soll nur so zum Test sain ;)
Mfg Bergmann
thepaine91 - Fr 27.08.10 11:38
@Bergmann bei einer zugriffsverletzung bezweifel ich das er mit F9 ^^ weiter kommt ;)
Und ja kann gut sein wollte es nur mal anmerken. =)
Bergmann89 - Fr 27.08.10 13:03
Wieso nich? Bei folgendem Code sagt der Debugger, dass die Exception aufgetreten ist (und pausiert den Programmablauf). Dann drück ich F9 (also lass das Programm weiter laufen). Er arbeitet den Except-Block ab und gibt mir die Meldung aus...
Delphi-Quelltext
1: 2: 3: 4: 5:
| try raise Exception.Create('Blaa'); except on e: Exception do ShowMessage(e.Message); end; |
€: sry, Zugriffsverletzung mit Exception verwechsel :oops:
MfG Bergmann
eraser_seb - Fr 27.08.10 13:25
Ich danke euch allen für eure antwortee. Die Lösung ist der Hammer. Delphi neustart. arbeite noch mit Delphi %(heul) aber jetzt gehts.
Danke euch nochmal
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!