Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#1

Exception wird nicht angezeigt - Ist das ein Fehler?

  Alt 9. Dez 2016, 06:24
Wenn ich ein Nicht-Modales-Formular anzeige das entfernt werden soll falls eine Exception auftritt, dann wird die Exception bei Delphi 10.1 (Berlin) nicht angezeigt (bzw. die Exception wird vermutlich angezeigt und sofort geschlossen). Bei (meinem) Delphi 2007 hat das noch einwandfrei funktioniert.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);
  try
    Form2.Show;
    raise Exception.Create('Ein Fehler');
  finally
    Form2.Release;
  end;
end;
Das liegt mit Sicherheit daran, dass die Dialogbox der Exception als Parent das Fenster "Form2" benutzt. Weil das Fenster aber im Rahmen der Fehlerbehandlung geschlossen wird, verschwindet auch die Fehlermeldung und kann vom Benutzer nicht gesehen werden. So etwas ähnliches gab es bei Delphi 2007 auch schon*. Damals wurden Fehlermeldungen nicht mehr angezeigt, wenn sie innerhalb des FormCreate auftraten. Für diesen Fehler hatte ich damals einen Bugfix eingebaut. Möglicherweise hat dieser Bugfix auch dazu geführt, das der obige Code bei mir einwandfrei funktionierte. Daran erinnere ich mich nicht mehr

Meine Frage: Ist das als Bug von Delphi zu werten (=>QC), oder sollte ich das durch Änderung des Designs meiner Anwendung lösen?

*QC #75756/#78400/#78883: No exceptionmessage shown if form is released
  Mit Zitat antworten Zitat