AGB  ·  Datenschutz  ·  Impressum  







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

TRestRequest: ERESTException Errorcode?

Ein Thema von taveuni · begonnen am 11. Jun 2025 · letzter Beitrag vom 11. Jun 2025
Antwort Antwort
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
539 Beiträge
 
Delphi 11 Alexandria
 
#1

TRestRequest: ERESTException Errorcode?

  Alt 11. Jun 2025, 07:57
Hallo zusammen,

Delphi-Quellcode:
  Try
    RestRequest.Execute;
    if FRestRequest.Response.StatusCode <> 200 then
      DoSomething
    else
      DoSomethingElse
  except
    on E: Exception do
    begin
      var ErrorText:= e.message;
      var ErrorCode:= '???';
      // handle different exceptions here
    end;
Bei den Exceptions handelt es sich um eine ERESTException. Als Beispiel wenn ich die Exception.message logge sehe ich z.B:

REST-Anforderung fehlgeschlagen: Fehler beim Empfangen der Daten: (12152) Der Server lieferte eine ungültige oder unbekannte Rückmeldung
oder
REST-Anforderung fehlgeschlagen: Fehler beim Senden der Daten: (12002) Das Zeitlimit für den Vorgang wurde erreicht.

Wie komme ich an den Errorcode in der Klammer? Sowohl Copilot wie auch Gemini schlagen ein parsen des Textes vor

Gibt es eine andere Möglichkeit?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
161 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TRestRequest: ERESTException Errorcode?

  Alt 11. Jun 2025, 09:07
Wenn es eine ERESTException ist, solltest Du sie auch so abfragen. Also

on E: ERESTException do
Edit: bzw. als ERequestError, die dann auch einen Statuscode hätte.

Geändert von gubbe (11. Jun 2025 um 09:10 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
539 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TRestRequest: ERESTException Errorcode?

  Alt 11. Jun 2025, 09:09
Wenn es eine ERESTException ist, solltest Du sie auch so abfragen. Also

on E: ERESTException do
Die beiden Meldungen oben sind beides ERestExceptions. Ich möchte den Code in der Klammer wenn möglich ohne Regex oder ähnliches.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
161 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TRestRequest: ERESTException Errorcode?

  Alt 11. Jun 2025, 09:29
Die beiden Meldungen oben sind beides ERestExceptions. Ich möchte den Code in der Klammer wenn möglich ohne Regex oder ähnliches.
Ja, ich meinte nur, wenn Du allgemein e vom Typ Exception definierst, was ein ganz allgemeines Exception-Objekt ist, kannst Du davon keine genaueren Angaben erwarten.

Wenn es keine spezielleren Exceptions sind, wie ERequestError, die einen Statuscode liefern könnten, würde ich es mit der allgemeinen Funktion "GetLastError" probieren (nur unter Windows). Entspricht die Rückgabe dieser Funktion den Codes in der Fehlermeldung?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#5

AW: TRestRequest: ERESTException Errorcode?

  Alt 11. Jun 2025, 09:33
Könnte man mal versuchen:
Delphi-Quellcode:
on E: ERESTException do
  if E is ERequestError then
    begin
      Status := ERequestError(E).StatusCode;
    end
  else
    begin
      // Pech gehabt, da muss man wohl parsen
    end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
539 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TRestRequest: ERESTException Errorcode?

  Alt 11. Jun 2025, 09:48
Nein - GetLastError bringt nicht den Code.
Und nein - Es handelt sich nicht um einen ERequestError. Ich werds einfach parsen mit Regex.
Danke Euch beiden.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  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 03:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz