AGB  ·  Datenschutz  ·  Impressum  







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

REST Exception

Ein Thema von TurboMagic · begonnen am 17. Jul 2022 · letzter Beitrag vom 19. Jul 2022
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#1

REST Exception

  Alt 17. Jul 2022, 16:39
Hallo,

ich komme in meiner D11.1 Anwendung mit meinen REST Zugriffen allmählich weiter,
habe an einer Stelle bezüglich des Fehlerhandlings aber noch ein Problem.

Wenn ich zum Testen eine falsche Portnummer an die URL anhänge, sehe ich in der IDE im Log
nach etwas Wartezeit diese Exception:

Erste Gelegenheit für Exception bei $7724CA42. Exception-Klasse ENetHTTPClientException mit Meldung
'Fehler beim Senden der Daten: (12029) Die Serververbindung konnte nicht hergestellt werden'. Prozess MyApp.exe (8944)
Erste Gelegenheit für Exception bei $7724CA42. Exception-Klasse ERESTException mit Meldung
'REST-Anforderung fehlgeschlagen: Fehler beim Senden der Daten: (12029) Die Serververbindung konnte nicht hergestellt werden'. Prozess MayApp.exe (8944)

Nur ich sehe nicht, wo die im Programm aufschlagen würde?
Den Request rufe ich mit ExecuteAsync auf und habe mich auch in diese anonyme Fehler Methode gehängt,
da kommt das Programm dann aber erst nach diesen Logmeldungen vorbei. Und da scheine ich auch nirgends
auf diese Fehlermeldung oben Zugriff zu haben. Oder?

Ich habe da nur die Response (ich hätte auch den Request und den RestClient) und die enthält nichts wirklich sinnvolles.

Grüße
TurboMagic

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: REST Exception

  Alt 17. Jul 2022, 17:58
Bei Execute sollte die doch einfach aus der Methode raus knallen
und bei ExecuteAsync in den beiden Error-Events einschlagen?

https://www.delphipraxis.net/211014-...abbrechen.html
$2B or not $2B
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#3

AW: REST Exception

  Alt 17. Jul 2022, 18:18
Da gab's die aber nie gesehen...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: REST Exception

  Alt 17. Jul 2022, 19:27
Wenn du ExecuteAsync mit ASynchronized = True aufrufst, werden auch die CompletionHandler mit dem Hauptthread synchronisiert. Der ACompletionHandlerWithError sollte aber bei der Exception aufgerufen werden und enthält in seinem Parameter das Exception Object. Aber das hatte ich ja schon geschrieben:
Der ACompletionHandlerWithError wird aufgerufen, wenn im Execute eine unbehandelte Exception auftritt (der Parameter enthält dann das Exception Object).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#5

AW: REST Exception

  Alt 19. Jul 2022, 18:56
Hallo,

ich habe gerade kurz reingeschaut: diese anynome methode scheint als Parameter ein TObject zu haben.
Richtig? Zumindest scheint die Deklaration so zu sein und mein Code compiliert damit.

Soll ich dann also diesen TObject Parameter in eine Exception Klasse casten um an die Message
ran zu kommen? Oder gibt's dafür bessere Mittel?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: REST Exception

  Alt 19. Jul 2022, 19:25
Ja.


siehe TRESTExecutionThread.Execute -> TRESTExecutionThread.HandleCompletionWithError
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#7

AW: REST Exception

  Alt 19. Jul 2022, 19:42
Soll ich dann also diesen TObject Parameter in eine Exception Klasse casten um an die Message
ran zu kommen?
Das ist das was ich oben ausdrücken wollte. So sieht hier eine solche Methode aus:
Delphi-Quellcode:
    procedure(Arg: TObject)
    begin
      Log('Error', (Arg as Exception).Message);
      Finished;
      Completion;
    end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#8

AW: REST Exception

  Alt 19. Jul 2022, 21:07
Danke, dann hab' ich jetzt verstanden wie ich's umsetzen kann.
  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 04:32 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