Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Wie ist der Programmierstil "professionell"

  Alt 17. Nov 2012, 13:48
Und jetzt zum 2. Problem:
Es wird MessageDlg() verwendet wo eigentlich eine Exception ausgelöst werden sollte:
Delphi-Quellcode:
procedure TfrmXXX.ZeileDelExecute(Sender: TObject);
var
  anzahl : Integer;
  azid : Integer;
begin
  azid := dmXXX.AZQ.fieldbyname('AZ.ID').asinteger;
  anzahl := dmXXX.GetFertigteileAnzahl(azid);
  if (anzahl > 0) then
    // Exception auslösen und dem Benutzer möglichst genaue Info geben wo das Problem ist
    raise Exception.CreateFmt('Löschen der Auftragszeile NICHT möglich, da bereits %d Fertigteile daraus eingebucht wurden (azid=%d)', [anzahl, azid]);
Und selbst diese Methode gehört ins DM. Dann merkt man nämlich auch, worin der Vorteil der Exception gegenüber dem MessageDlg liegt: man hat keine GUI im DM. Wobei man sich darüber streiten kann, ob hier nicht lieber ein Result vom Typ Boolean einer Exception vorzuziehen wäre (Stichwort: keine Exceptions als Teil der Business Logic).
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (17. Nov 2012 um 13:51 Uhr)
  Mit Zitat antworten Zitat