Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Normale Exceptions nicht anzueigen

  Alt 3. Sep 2007, 18:35
Bei einem Seriendruck können ja auch Exceptions auftreten.
Der Benutzer kann auswählen was er tun möchte.
1.) Fehler ignorieren, auf Nachfrage abbrechen
2.) Fehleretikett drucken
3.) sofort abbrechen
Ausserdem werden alle Exceptions in einem Memo protokolliert.
Delphi-Quellcode:
procedure TSerienDruckForm.HandleException(E: Exception);
begin
   AddError(E.Message); // Memo1.lines.Add(...)

   case RgpErrorAction.ItemIndex of
      0: // Druckauftrag ignorieren
      begin
         if MessageDlg(E.Message + #13#10 + 'Seriendruck abbrechen ?', mtError, [mbYes, mbNo], 0) = mrYes then
            Abort;
      end;
      1: // Fehleretikett
      begin
         DMPrtFehlerEtikett.PrintFehlerEtikett(E);
      end;
      2: // Seriendruck abbrechen, Exception erneut auslösen
      begin
         // "raise E" will nicht, daher neue Exception erzeugen.
         raise Exception.Create(E.Message);
      end;
      else
      begin
         Assert(False);
      end;
   end;
end;
Die Fehlerbehandlung sieht dann so aus:
Delphi-Quellcode:
 try
   EinzelauftragAbarbeiten;
 except
   on E: Exception do
   begin
    // Auftrag als fehlerhaft markieren
    .....

    HandleException(E);
 end;
Andreas
  Mit Zitat antworten Zitat