AGB  ·  Datenschutz  ·  Impressum  







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

Exception wird übersprungen??

Ein Thema von kagi3624 · begonnen am 2. Nov 2020 · letzter Beitrag vom 2. Nov 2020
Antwort Antwort
kagi3624

Registriert seit: 3. Feb 2020
138 Beiträge
 
Delphi 6 Enterprise
 
#1

Exception wird übersprungen??

  Alt 2. Nov 2020, 10:28
Delphi-Version: 6
Hallo, wie auf dem Bild zu erkennen ist, verrusacht ein Aufruf eine Exception, welche ich abfangen möchte. In der Meldung ist die rede von EclSocketError, also habe ich sie eingebaut. Aber dort wird trotzdem nicht reigesprungen, wenn ich die Zeile On E : EclSocketError duch On E : Exception austausche, dann funktioniert das. K.A. was ich falsch mache, ich glaub ich lass da einfach Exception stehen, aber wenn jemand weiß was an dem Code falsch ist, würde ich das gerne wissen. Danke.

Delphi-Quellcode:
    try
      response := GetHttpResponse(request, TSEcheckClientURL, '20200928145100');
    except
      On E : EclSocketError do begin
        showmessage('Der Dienst konnte nicht erreicht werden!');
        application.Terminate;
      end;
    end;
Miniaturansicht angehängter Grafiken
except1.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Exception wird übersprungen??

  Alt 2. Nov 2020, 11:28
Ich würde mal mit "on e: Exception do" die Exception abfangen und e.Classname abfragen, ob es wirklich EclSocketError ist.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Exception wird übersprungen??

  Alt 2. Nov 2020, 13:29
Zitat:
ich glaub ich lass da einfach Exception stehen
Wenn du nicht nur auf genau diese Exception prüfen willst
oder auf Eigenschaften/Property davon drauf zugreifen tutst, dann gibt es eh keinen Grund was Anderes anzugeben.

Außerdem ist es eh eine schlechte Idee "alle" anderen Exceptions stillschweigend zu unterdrücken und bei der eigentlichen Exception die Fehlermeldung durch einen sinnlosen und womöglich komplett falschen Fehlertext zu ersetzen. (die originale Meldung spurlos zu verwerfen)
Delphi-Quellcode:
on E : Exception do begin
  ShowMessage('Der Dienst konnte nicht erreicht werden!'#10
    + E.ClasName + ': ' + E.Message);
end;
Selbst wenn hier EclSocketError angezeigt wird, könnte es immernoch sein, dass "EclSocketError" eine gleichnamige Klasse aus einer anderen Unit ist.
das ON arbeitet wie ein IS und da muß es der "selbe" Typ sein.
$2B or not $2B

Geändert von himitsu ( 2. Nov 2020 um 13:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Exception wird übersprungen??

  Alt 2. Nov 2020, 14:04
Außerdem ist es eh eine schlechte Idee "alle" anderen Exceptions stillschweigend zu unterdrücken
Das macht er doch gar nicht. Er fängt nur genau eine Klasse ab, die anderen werden automatisch re-raised.
Thomas Mueller
  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 19:02 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