Autor Beitrag
Shaky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72

WinXP
D5, Delphi 2005 Prof.
BeitragVerfasst: Di 19.04.05 15:02 
Hi.

Ich habe ein Programm mit Haufenweise Unterprogrammen.
Das Programm soll ich verbessern. Ist von einem alten Angestellten.

Der hat fast ohne try except gearbeitet.

Wir würde gerne so ein Support Form erstellen.
Das soll halt immer erscheinen wenn ne Exception kommt.
z.B

ausblenden Quelltext
1:
2:
3:
4:
5:
try
  bla:=10/0;
except
  Supportform.eshow(exception);
end;


Und dann soll der halt schreiben dürfen was er gemacht hat.
Dann soll eine Email an mich gehen mit Exception, Text und Zeile Unit in der er gerade ist.
Die Email ansich ist ansich kein Problem.
Ich denke wenn ich das überall hinkopiere ist nichts davon schwer.

Aber jetzt 2 Dinge.
Die 1.: Wie lese ich die Exception aus?
Die 2.: Kann ich das irgendwie so machen das der das try Except über das ganze Programm macht.
Weil nachträglich jetzt alle funktionen durchzugehen da brauche ich 3 Jahre für.

Wäre cool wenn ihr mir helfen könnt.
Oder wenn ihr sicher seid wenigstens schreibt. Nein geht auf keinen Fall oder so.

Big Thx
Shaky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72

WinXP
D5, Delphi 2005 Prof.
BeitragVerfasst: Di 19.04.05 15:33 
Habs schon durch IRC rausbekommen.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := AppException;

end;

procedure TForm1.AppException(Sender: TObject; E: Exception);

begin
  Application.ShowException(E);
  Application.Terminate;
end;


Für alle die es interessiert.

Trotzdem Danke :)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.04.05 15:36 
Selbst wenn es leicht möglich wäre, ist es eine sehr schlechte Idee mit try..except das ganze Programm zu pflastern.
Das setzt die Geschwindigkeit DRASTISCH herunter. Deshalb: So wenig wie irgend möglich aber so viel wie eben gerade nötig.

Zum Problem: Ich glaube es gibt Application.OnException, wo du die Analyse zentral durchführen kannst.

ABER: An den Stellen, wo wirklich was passieren kann, weil es nicht vermeidbar ist (z.B. Ein- / Ausgabe), sollte das abgefangen werden (entweder durch Analyse oder mit try..except), damit das Programm nicht instabil wird. Die Arbeit wirst du wohl leisten müssen...

edit: Dann hätt ich mir das ja sparen können...
VORHER suchen...