![]() |
Exceptions speichern
Aloha,
kann mir wer erklären, wie man auftretende Exceptions ("" is not a valid Integer-Value, usw) speichern kann? Ich habe schon selbst einiges probiert, doch klappt es nicht. |
Re: Exceptions speichern
Zitat:
|
Re: Exceptions speichern
Du könntest über TApplicationEvents.OnException die Fehler in eine Datei speichern.
|
Re: Exceptions speichern
So in etwa dieses hier:
Delphi-Quellcode:
Aber da gibts nix wie "SafeToFile" oder so :/
var
ex: Exception; i: SmallInt; begin try i := StrToInt(Edit1.Text); // ich gib ne kommazahl ein, um ex zu erreichen except on ex: Exception do ShowMessage('Exception detected:' +#13+ ex.message); end; |
Re: Exceptions speichern
Wie Du an die Nachricht dran kommst weißt Du, dann kannst die per TStringList, über TFileStream oder über AssignFile und Konsorten in eine Datei schreiben.
|
Re: Exceptions speichern
|
Re: Exceptions speichern
leider klappt momentan garnix :wall:
|
Re: Exceptions speichern
Interessant, so kann das auch nicht klappen.
|
Re: Exceptions speichern
Zitat:
Mit Exceptions kann man nämlich Vieles anstellen. |
Re: Exceptions speichern
Naja, so gesehen möchte ich nur erreichen , dass ich zum schluss weis "wie man sowas macht"..
sry, hab seit 10 min frei ( :wall: ) und steh noch unter strom :feuerchen: |
Re: Exceptions speichern
Na, dann wollen wir mal nich so sein :wink:
Also, zuerst machst du dir ne Prozedur, in der die Fehler behandelt und gespeichert werden. Hier mal eine Idee:
Delphi-Quellcode:
Wichtig: die Parameter müssen so bleiben!
procedure TForm1.AppException(Sender: TObject; E: Exception);
var FName: String; List: TStrings; begin FName := ExtractFilePath(ParamStr(0)) + 'Errors.log'; List := TStringList.Create; try with List do begin if FileExists(FName) then LoadFromFile(FName); Add('[' + DateToStr(Now) + ' / ' + TimeToStr(Now) + ']' + ' ' + E.Message); SaveToFile(FName); end; finally FreeAndNil(List); Application.ShowException(E); Application.Terminate; end; end; Dann weist du deine Prozedur dem OnException-Ereignis zu:
Delphi-Quellcode:
Und schon fertig :wink:
procedure TForm1.FormCreate(Sender: TObject);
begin Application.OnException := AppException; end; Mfg |
Re: Exceptions speichern
Autsch, warum Terminieren nach der Exception?
|
Re: Exceptions speichern
Zitat:
![]() |
Re: Exceptions speichern
Zitat:
|
Re: Exceptions speichern
@Fusballrowdy:
-Zur Vereinfachung gibt es noch TApplicationEvents, da kann man das einfach anklicken -Was passiert mit Exceptions, welche direkt in der Funktion abgefangen werden (try..except..end) ? -Wieso Terminate wurde ja schon gefragt. |
Re: Exceptions speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Exceptions speichern
Den kenn ich schon :zwinker:
|
Re: Exceptions speichern
Mh, ich erkläre mal schematisch was ich gemacht hatte:
stringlist erstellen absichtlich einen fehler machen (double-wert einer integer-variablen zuweisen) => fehler kommt => => on ex: Exception do ShowMessage('Exception detected:' +#13+ ex.message); text := ex.Message; // hier war spätestens der fehler. ich werde mir das tutorial mal verinnerlichen =) |
Re: Exceptions speichern
Zitat:
Terminate ist Quatsch, ja. Ich hab das vor einem halben Jahr oder so das letzte mal benutzt und jetzt nur ausm Kopf runtergetippt. Sorry :? |
Re: Exceptions speichern
Das mit dem Terminate ist ja aber schon seltsam .. egal.
Ich habs weggenommen. Merci, ich verstehe diese ganze Sache jetzt . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz