| Autor |
Beitrag |
Henry
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: So 24.11.02 20:32
Hallo,
ich habe da mal eine Frage zu Try...Except.
Ich habe in meinem Programm begonnen spezielle Anweisungsblöcke bei denen Fehler auftauchen könnten mit einer Try...Except Anweisung eingebettet. Das sieht dann sinngemäß bei jeder eingebetteten Anweisung so aus:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| Try Meine Anweisungsblock .. .. .. Except ShowMessage('Fehler 0001'); End; //Except |
Nun tauchte bei einem Anweisungsblock ein Fehler auf, bei dem sich der Rechner Aufhängte (Blue Screen). Nachdem ich diesen Block in Try..Except eingebettet habe wurde mir auch meine Message mit der Fehlermeldung angezeigt. Als ich dan die Message mit OK zur kenntnis nahm Stürtzte der Rechner Trotzdem ab.
Wie kann ich es so Regeln, das der Fehler abgefangen wird (meine Message wird gezeigt) und nachdem ich OK gedrücht habe einfach mit der nächsten Anweisung nach dem Problematischen Block weitergemacht wird?
Ich dachte eigentlich das Try..except dazu gedacht wäre.
Kann mitr da jemand einen Tip geben?
Danke im Voraus
_________________ mfg Henry
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: So 24.11.02 21:05
Dazu ist es eigentlich auch da. Nur fängt Try/Except Fehler ab auf die es reagieren kann. Wenn dein Programm auf fremden Speicherbereich zugegriffen und den zerstört hat, dann kriegt das auch Try/Except nicht wieder hin. Würde ich so sagen, oder?
|
|
Henry 
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: So 24.11.02 21:10
Also möchtest Du mir damit sagen, das in meinem Programm ein Fehler aufgetreten ist, den man nicht umgehen kann?
_________________ mfg Henry
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: So 24.11.02 21:53
Kann ich dir nicht sagen. Ich kenn dein Code nicht. Allerdings ist ein Bluescreen schon eine Kategorie für sich. Von einem DivByZero kriegst du kein Bluescreen.
Was ich sagen will ist, daß du irgendwo kräftig in das System eingreifst. Ich hab zwar schon hier und da auch eine Fehlermeldung bei meinem Programm gehabt, aber noch nie ein Bluescreen.
|
|
Henry 
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: So 24.11.02 22:00
Eigentlich würde ich nicht sagen, das ich mit meinem Programm Tief ins System eingreife.
Der Code wo der Fehler auftritt sieht so aus:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Try Form3.LEDMeter1.Position := StrToInt(Edit1.Text); //Windrichtung Form3.LEDMeter2.Position := StrToInt(Edit2.Text); //Luftfeuchte Form3.LEDMeter3.Position := StrToInt(Edit3.Text); //Temperatur Form3.LEDMeter4.Position := StrToInt(Edit4.Text); //Luftdruck Form3.LEDMeter5.Position := StrToIn(Edit5.Text); //Windgeschwindigkeit Form4.Button1.Click; Form5.Button1.Click; Except ShowMessage('Fehler bei Bargraph'); End; //except |
Also ich schiebe nur eun paar zahlen durch die gegend
Wenn ich diesen Teil des Codes Auskommentiere ist der Fehler weg.
_________________ mfg Henry
Zuletzt bearbeitet von Henry am So 24.11.02 22:02, insgesamt 1-mal bearbeitet
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: So 24.11.02 22:02
Hi,
handelt s sich um Win98
Gruß
Hansa
|
|
Henry 
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: So 24.11.02 22:03
ja!
_________________ mfg Henry
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 24.11.02 22:04
Was wird denn bei den Button-Clicks gemacht?
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Henry 
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: So 24.11.02 22:08
_________________ mfg Henry
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: So 24.11.02 22:20
Hallo Henry!
Damit wir die helfen können, müssen wir wissen, wo der Fehler genau auftritt! Deshalb setze mal am Anfang der Prozedur einen Haltepunkt und führe danach die einzelnen Anweisungen des Programmes mit F8 einzeln aus. Danach kannst du uns genau sagen, wo der Fehler auftritt!
Gruß wulfskin!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Henry 
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: So 24.11.02 22:29
Da ich hauptsächlich auf meinem XP - System Progge, muß ich ich das morgen mal auf dem 98 System probieren.
Auf xp hatte ich bis jetzt keine Probleme mit dem Programm. Es lief darauf aber auch noch nicht so lange.
Übrigens: Das Programm läuft auch erst eine weile und dann taucht der Fehler auf.
Ich werde das Morgen mal probieren.
Herzlichen Dank für eure Hilfe, vieleicht habe ich den Fehler dank diesem Tip dann schon selber gefunden.
Ich werde es dann hier mittteilen oder die Position des Fehlers Posten.
Gute Nacht erstmal 
_________________ mfg Henry
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 25.11.02 00:09
Quelltext 1:
| Form3.LEDMeter1.Position... |
Kann sein, daß das eine Fremdkomponente ist? Es kann sein, daß der Fehler da passiert. In diesem Fall wird die Fehlermeldung nicht in der Kompo angezeigt, sondern erst in der Prozedur in der das aufgerufen wurde.
In diesem Fall ist die Kompo schuld.
|
|
Henry 
      
Beiträge: 619
WinXP Prof. SP3
D6 Prof.
|
Verfasst: Mo 25.11.02 19:05
Ja, ist ne Fremdkompo.
Ich habe es versucht in der Delphi IDE laufen zu lassen um den Fehler angezeigt zu bekommen. Allerdings lief das Programm dies mal mehrere Stunden ohne das der Fehler auftrat. Komisch,komisch.
Da ich an der Stelle so oder so was umstrukturieren wollte werde ich den Part einfach weglassen und was besseres dort verwenden. Denn ich mag sporadisch auftretede Fehler, die man sich nicht erklären kann, überhaupt nicht und möchte so ein Programm nicht Weitergeben. Wie gesagt, ich wollte diese Stelle sowieso ändern.
Ich kann leider keine präzieseren Angaben zum Fehler machen wenn er nicht mehr auftritt
Danke für eure Hilfe.
_________________ mfg Henry
|
|