AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idHttp.Get kann Exception nicht abfangen!
Thema durchsuchen
Ansicht
Themen-Optionen

idHttp.Get kann Exception nicht abfangen!

Ein Thema von PASST · begonnen am 21. Feb 2006 · letzter Beitrag vom 23. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

idHttp.Get kann Exception nicht abfangen!

  Alt 21. Feb 2006, 11:13
Hi NG.

Delphi 4 (update 3), Indy 9.

Delphi-Quellcode:
try
  idHTTP.Get(sUrl, ms);
except
  Application.Terminate;
end;
Leider funktioniert dieser Code nicht, dh. bei nicht erreichbarer URL (404) wird das Programm nicht beendet.

Ist die URL erreichbar funktioniert alles tadelos.

Kann mir jemand einen Tipp geben?

Gruß
Peter
  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: idHttp.Get kann Exception nicht abfangen!

  Alt 21. Feb 2006, 11:27
wenn du es so hart killen willst könntest du auch "TerminateProcess" verwenden. Das ist so ziemlich die gemeinste Art und weise dem Prozess gegenüber diesen zu killen (Prozess ist machtlos).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 21. Feb 2006, 11:30
Hm, es muss doch eine Möglichkeit geben bei einer 404-Exception das Programm normal zu beenden und nicht eine Fehlermeldung seitens Indy zu erhalten.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 21. Feb 2006, 11:35
theoretich sollte das auch funktionieen. Jedoch weiß ich nicht welche Rahmenbedingungen außerhalb des geposteten Sources existieren die das beeinflussen. Und wenn es dir wirklich nur ums beenden des programmes geht kannst du ja auch die "HauDrauf"-Methode mit TerminateProcess verwenden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 22. Feb 2006, 09:59
Ich denke nicht, dass TerminateProcess die optimale Lösung ist.

Ich möchte eigentlich, dass die Anzeige der Exception komplett unterdrückt wird und nicht angezeigt und dann durch eine TerminateProcess gekillt wird.

Noch einen Rat parat?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 22. Feb 2006, 10:18
mit Try-Except, Try-Finally kannst du die Fehlermeldung auch unterdrücken. Vermutlich führst du dein Programm aber aus Delphi heraus aus und hast in den debugger-optionen "Stop on Delphi-Exceptions" aktiviert (was standardmäßig der fall ist). Delphi spuckt dir also eine Fehlermeldung aus, fährt dann aber in der Behandlung entsprechend Try-Except/Try-Finally fort.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 22. Feb 2006, 10:24
Das ist tatsächlich der Fall. Wenn ich das Programm außerhalb der IDE ausführe, wird keine Fehlermeldung ausgespuckt.

Andererseits führt das Application.Terminate aber auch nciht dazu, dass die Anwendung geshclossen wird, sondern es wird anschließend munter weiter im Quelltext fortgefahren.

Woran kann das nun liegen?
Ich dachte Application.Terminate wäre das ultimative Mittel, um die eigene Anwendung zu schließen.

Peter
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 22. Feb 2006, 10:28
das ultimative Mittel hab ich bereits gepostet. Application.Terminate beendet so weit ich weiß nur die Nachrichtenschleife des Hauptthreads. Ist also noch eine "nette" variante. Alternativ kannst du auch noch "halt" verwenden. Das ist nicht ganz so hart wie "TerminateProcess" aber ein ganzes stück effiezenter wenn man ein Programm beenden will.
Allerdings denke ich das es nicht die richtige Herangehensweise ist ein Programm bei einem Fehler einfach zu schließen. Und wenn du das doch unbedingt willst weiß ich nicht was gegen TerminateProcess spricht. Schließlich willst du das Programm ja auf jeden fall beenden was damit sichergestellt wäre.

Vielleicht solltest du mal erleutern was du genau vor hast. Einmal willst du deine Anwendung beenden und das andere mal eine Exception abfangen.
Wenn du das eigentliche Ziel mal beschreibst findet sich vielleicht ein besserer Weg dort hinn.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 22. Feb 2006, 10:33
Zitat von PASST:
Das ist tatsächlich der Fall. Wenn ich das Programm außerhalb der IDE ausführe, wird keine Fehlermeldung ausgespuckt.
Menu Tools/Debugger-Optionen, Reiterseite "Sprach-Exceptions", CheckBox "Bei Delphi-Exception stoppen" beeinflußt das Verhalten in der IDE.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: idHttp.Get kann Exception nicht abfangen!

  Alt 22. Feb 2006, 10:37
Ok, dann erzähl ich mal ein bisken.

Mit HTTP.Get(sUrl, MemStream) möchte ich - bei Erreichbarkeit - eine CSV-Datei einlesen, die ich anschließend auswerte. Wenn ich keine Daten erhalten kann, möchte ich das Programm an dieser Stelle beenden, da sowieso nichts mehr passiert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:01 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