Exception abfangen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
Zvoni
Beiträge: 622
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Exception abfangen

Beitrag von Zvoni »

Ich werd gerade bescheuert
Debugger=fpDebug mit Dwarf2 mit Sets

Code: Alles auswählen

procedure TFormProviders.SaveChanges(AQuery: TSQLQuery);
begin
  If AQuery.State In [dsBrowse,dsEdit,dsInsert] Then
    Begin
      Try
        AQuery.ApplyUpdates;
        AQuery.SQLTransaction.CommitRetaining;
        AQuery.Refresh;
      Except
        On E:ESQLDataBaseError Do
          ShowMessage('Fehler='+E.ErrorCode.ToString+LineEnding+'State='+E.SQLState+LineEnding+'Text='+E.Message);
      end;
    end;
  IsDirty:=False;
end;                            
Ich bekomme diese Meldung vom DEBUGGER --> ganz klar: ESQLDatabaseError
Unbenannt.PNG
Unbenannt.PNG (9.5 KiB) 351 mal betrachtet
Ich kann mich beim besten Willen nicht mehr erinnern, was ich in den Projekt-Optionen einstellen muss, damit es mir eben nicht gezeigte Fehlermeldung zeigt, sondern dass mein Code im Try/Except in den Except-Teil springt
Unbenannt2.PNG
Unbenannt2.PNG (43.85 KiB) 351 mal betrachtet
Hilfe?
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7254
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Exception abfangen

Beitrag von af0815 »

Normalerweise, wenn du "ignore this exceptiontype" anwählst, macht er die EInstellungen im Projekt von selbst. Ich habe normalerweise das Notify on exception aktiv, nur die Anderen schalte ich ein und aus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Zvoni
Beiträge: 622
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Exception abfangen

Beitrag von Zvoni »

af0815 hat geschrieben: Di 24. Mär 2026, 11:02 Normalerweise, wenn du "ignore this exceptiontype" anwählst, macht er die EInstellungen im Projekt von selbst.
?? Würde erklären, wo auf einmal das EUpdateError herkommt.
Muss ich mal probieren
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
Zvoni
Beiträge: 622
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Exception abfangen

Beitrag von Zvoni »

OK, jetzt wird es skurril.

Code: Alles auswählen

procedure TFormProviders.SaveChanges(AQuery: TSQLQuery);
begin
  If AQuery.State In [dsBrowse,dsEdit,dsInsert] Then
    Begin
      Try
        AQuery.ApplyUpdates;
        AQuery.SQLTransaction.CommitRetaining;
        AQuery.Refresh;
      Except
        On E:ESQLDataBaseError Do
          ShowMessage('ESQLDatabaseError='+E.ErrorCode.ToString+LineEnding+'State='+E.SQLState+LineEnding+'Text='+E.Message);
        On E:EUpdateError Do
          ShowMessage('EUpdateError='+E.ErrorCode.ToString+LineEnding+'Text='+E.Message);
      end;
    end;
  IsDirty:=False;
end;                             

Die Fehlermeldung besagte "ESQLDatabaseError"
Es ist aber ein "EUpdateError" (Code springt zur zweiten ShowMessage)

Was denn jetzt? Einigt euch mal

*grml*
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7254
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Exception abfangen

Beitrag von af0815 »

Zvoni hat geschrieben: Di 24. Mär 2026, 11:10 OK, jetzt wird es skurril.
....
Was denn jetzt? Einigt euch mal

*grml*
Es ist Ostern und du findest jede Menge "Easter Eggs" SCNR :mrgreen:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

charlytango
Beiträge: 1258
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Exception abfangen

Beitrag von charlytango »

hab eine gaaanz blöde Zusatzfrage:

Code: Alles auswählen

If AQuery.State In [dsBrowse,dsEdit,dsInsert] Then
wieso kann es im State dsBrowse etwas zum Speichern geben?
Ich kann da ja auch völlig falsch liegen, aber das kommt mir komisch vor

Benutzeravatar
Zvoni
Beiträge: 622
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Exception abfangen

Beitrag von Zvoni »

charlytango hat geschrieben: Di 24. Mär 2026, 15:15 hab eine gaaanz blöde Zusatzfrage:

Code: Alles auswählen

If AQuery.State In [dsBrowse,dsEdit,dsInsert] Then
wieso kann es im State dsBrowse etwas zum Speichern geben?
Ich kann da ja auch völlig falsch liegen, aber das kommt mir komisch vor
Hast Recht.
Muss ein Überbleibsel sein
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Antworten