AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Keine Exceptions

Ein Thema von bcvs · begonnen am 11. Apr 2025 · letzter Beitrag vom 14. Apr 2025
Antwort Antwort
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
724 Beiträge
 
Delphi 12 Athens
 
#1

AW: Keine Exceptions

  Alt 12. Apr 2025, 11:12
Mit MadExcept habe ich selbst nie gearbeitet. Aber Du bist Dir sicher, daß die fraglichen Exceptions nicht in deinem eigenen Kode in einem try except-Block abgefangen und verschluckt werden und MadExcept sie nur wie der IDE Debugger auf einer tieferen Ebene detektiert und anzeigt bzw. ins Log schreibt?

Kannst Du das Problem in einem Testprojekt nachstellen?

Versuch auch mal, das DPROJ-File umzubenennen und das Projekt über das DPR-File zu öffnen. Ein neu erzeugtes DPROJ-File hat halt sicher keine historischen Artefakte drin...
Peter Below
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Keine Exceptions

  Alt 12. Apr 2025, 16:55
Hallo,

MadExcept kümmert sich eigentlich nur um Exceptions um die sich der Entwickler
noch nicht selber gekümmert hat.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#3

AW: Keine Exceptions

  Alt 12. Apr 2025, 19:16
Kannst du das denn nicht debuggen? Je nachdem, wo die Exception ausgelöst wird, gibt es natürlich unterschiedliche Stellen, an denen diese behandelt wird. Das kannst du aber im funktionierenden Projekt prüfen.

Beispiel:
Wenn die Exception in einem Buttonklick ausgelöst wird, landest du im except in TWinControl.MainWndProc, wo dann Application.HandleException aufgerufen wird (das dann die Messagebox anzeigt).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
736 Beiträge
 
Delphi 12 Athens
 
#4

AW: Keine Exceptions

  Alt 14. Apr 2025, 10:45
Jetzt habe ich es gefunden: Es gab doch ein Application.OnException. Das hatte ich anscheinend verdrängt/vergessen. Den Code dafür hatte ich aus einem Forum des Datenbankherstellers (ElevateDB).

Delphi-Quellcode:
if Assigned(E) then begin
  if (E is EDatabaseError) and (E is EEDBError) then
    begin
      if EEDBError(E).ErrorCode=EDB_Error_SessionNotFound then
        begin
          // Exception in Logdatei Protokollieren
        end;
    end;
end;
Es sollte eigentlich so sein, dass hier nur das EDB_Error_SessionNotFound behandelt wird und alle anderen Exceptions unangetastet bleiben. Die werden aber auch verschluckt, was ich jetzt weiß.

Ich habe jetzt mal ein Application.ShowException(E) eingebaut. Dann funktioniert es wie gewohnt.

Geändert von bcvs (14. Apr 2025 um 10:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Keine Exceptions

  Alt 14. Apr 2025, 13:23
AND?

Und im on E: irgendwas do ist E immer assigned.


Delphi-Quellcode:
except
  on E: EEDBError do
    if E.ErrorCode = EDB_Error_SessionNotFound then
      ...
    else
      ...;
  on E: Exception do
    ...;
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Keine Exceptions

  Alt 14. Apr 2025, 14:22
Es ist zwar nicht in einem except-Block, sondern im Application.OnException , aber selbst da ist die übergebene Exception immer eine gültige Instanz.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

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

AW: Keine Exceptions

  Alt 14. Apr 2025, 14:52
Zitat:
ist die übergebene Exception immer eine gültige Instanz.
Hm, da bin ich mir nicht so sicher. ich meine mich zu erinnern, mal Ewigkeiten nach einem Bug gesucht zu haben, wo das Exception-Objekt NIL war. Wenn ich mich jetzt nur noch an die Details erinnern könnte.

Edit: Gefunden. Nur gut, dass ich über so was immer gleich blogge.
Thomas Mueller
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:22 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