AGB  ·  Datenschutz  ·  Impressum  







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

Fehler-Meldung unterbinden?

Ein Thema von czapie · begonnen am 16. Dez 2002 · letzter Beitrag vom 18. Dez 2002
Antwort Antwort
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#1

Fehler-Meldung unterbinden?

  Alt 16. Dez 2002, 15:15
Hallo,

es gibt bei .exe's ja leider manchmal Fehlermeldungen beim Ausführen von irgendwelchen Sachen die nicht funktionieren, die beim Ausführen aus der Programmierungsumgebung ne Exception hervorrufen würden.

Nehmen wir mal das Beispiel pop3-client, ich will mich mit nem Server verbinden, Starten "aus Delphi" kommt bei, sagen wir falschem Host ne Exeption, beim Starten der exe an sich, kommt nur ein kleines Fenster 'not connected', wie kann ich nun aber das Auftauchen dieses Fenster verhindern?
Ich möchte also nach Möglichkeit expliziet das Melden von Fehlern verhindern,

danke,
fröhliche Weihnachten

Czapie
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#2
  Alt 16. Dez 2002, 15:18
Hi czapie,

unter Tools | Debugger Optionen solltest du auf dem Tabsheet "Exceptions" die Checkbox "Stop on Delphi Exceptions" finden, die du dann einfach ausschaltest, dann bekommst du in der IDE keine Exceptions mehr an den Kopfgeworfen (dafür hagelt es aber "richtige" Fehlermeldungen, wenn du die Exception nicht abfängst).

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#3

ok

  Alt 16. Dez 2002, 15:22
ok, dankeschön,
und dann kommen in der .exe an sich (drück ich mich überhaupt verständlich aus?) auch keine Fehlermeldungen mehr?
Naja kann ich ja ausprobieren, wenn ich nich klarkomm, meld ich mich nochmal,

czapie.
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#4
  Alt 16. Dez 2002, 15:29
Wenn du in der ".exe an sich" keine Fehlermeldungen bekommen willst, dann musst du sie mit einem try..except-Konstrunkt abfangen:

Delphi-Quellcode:
try
  // Code hierher
except
  on ESomeException do;
  // Exceptions vom Typ ESomeException hier abfangen
  // Im Moment werden sie gleich ausgeblendet weil dur eine leere
  // Anweisung (";") hinter dem "do" steht

  // wenn hier kein on..do-Statement kommt, dann werden _alle_
  // Exceptions hier abgefangen
end;
MfG,
d3g

PS. Fehler im Code-Formatter: on wird nicht fett
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#5

ahja

  Alt 16. Dez 2002, 15:37
Ok, hab eben grad die Sache mit der Debug-Option ausprobiert, die hat zwar schon in Delphi die Exceptions abgefangen, aber in der .exe kamen dann noch diverse Fehlermeldungen.
Wie ist die Sache mit den Exceptions zu verstehen, wenn ich ESomeException schreibe fängt er alle möglichen ab ???
Und wenn ich den on..do block leer lasse dann werden alle Ignoriert?
danke,
möge der Weihnachstmann dich reich beschenken

czapie,
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#6
  Alt 16. Dez 2002, 15:47
Hi czapie,

es läuft so: der Code innerhalb von try..except wird normal ausgeführt. Wenn jetzt eine Exception auftritt, springt er in den except-Teil. Hier steht Code, der bestimmt, was passieren soll. Steht da keiner (nur das "end"), dann passiert nichts, das dürfte es sein, was du willst. Jetzt kann man allerdings mit on..do die Exceptions noch filtern, sodass nur Exceptions von bestimmten Typen abgefangen werden, alle anderen nicht.

Das ist die normale Vorgehensweise, denn wenn man alle Exceptions abfängt und es wird einmal eine abgefangen, von der du gar nicht wusstest, das sie auftritt, dann wirst du es auch nicht bemerken und hast damit eventuell ein Problem, weil du den Fehler nicht erkennen kannst.

Also: schalte in den Debuggeroptionen diese Checkbox wieder ein, schaue die in der Fehlermeldung den Exception-Typ an (er beginnt mit einem E) und trage in deinem try..except-Konstrukt

on EExeptionTyp do; ein. Dann kannst du die Checkbox wieder ausschalten, und der Fehler sollte dich nicht mehr belästigen.

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#7
  Alt 16. Dez 2002, 18:49
wenn du dir sicher bist, dass keine "echten" fehler kommen können, kannst du auch except ohne "on..." nehmen, dann werden alle fehler abgefangen.
Michael N.
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#8

danke

  Alt 18. Dez 2002, 15:08
Oh Mann, das Modem von meiner Freundin ist echt langsam und sehr Macken-reich, aber jetzt bin ich wieder zu hause,
also was ich sagen wollte, danke Leute!
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:15 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