![]() |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Schau Dir mal MadExcept von
![]() |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Zitat:
Oder anders herum: Welche Fehlerfälle könnten denn passieren, die du nicht vorher abfangen könntest, bevor du den String umzuwandeln versuchst? Es hat fast den Anschein, als würdest du Exceptions als "Stilmittel" zur Gültigkeitsüberprüfung verwenden, anstatt folgendes zu tun:
Delphi-Quellcode:
:gruebel:
if StringIstSauber(StringA) then
FloatB := StrToFloat(StringA) else SchreibeProtokoll('ProtEintrag'); |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Mit ExceptAddr und einem MAP Datei kann man höchstens die Methode/Procedure ermitteln, aber nicht die Zeilennummer. Diese kann man damit nicht ermitteln. Von daher bringt dich das nicht weiter.
|
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Zitat:
![]() ...:cat:.... P.S.: Ich sehe gerade OldGrumpy hat es auch schon empfohlen :oops: Aber es ist wirklich gut und ich nutze es in unserer Haussoftware ebenfalls. |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
MadExcept nutzt vermutlich auch nur die DebugInfos. Es wäre interessant wie man diese auslesen kann bzw. wie diese aufgebaut sind.
|
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Zitat:
...:cat:... |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Ich hab mir das madExcept mal auf der Homepage angeschaut, aber kann das Teil auch im Hintergrund aggieren, ohne sichtbare Fenster aufzurufen?
Es handelt sich bei mir nämlich um einen Windows-Dienst, der natürlich keine Fenster öffnen soll. @IngoD7: Natürlich versuche ich vorher einige Fehler vorweg zu nehmen, nur leider gelingt das nicht immer so wie es soll, da es sich nicht direkt um statische Quellen Handelt. Genau genommen werden die Daten von einer Webseite bezogen und der HTML-Code wird aus irgendwelchen bisher noch nicht auffindbaren Gründen teilweise falsch übermittelt, bzw. falsch vom Programm verarbeitet. (ich würde mal 15-30% Fehlerquote schätzen, genau kann ich das nicht sagen) Was mir erst aufgefallen ist: '309.29' is not a valid floating point value Irgendwie finde ich das komisch, Float arbeitet doch mit . und das klappt an allen möglichen Stellen und ich prüfe auch mit einer Routine ob es sich um ein Float handelt, aber in diesem Fall schlägt das StrToFloat immer fehl. |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Zitat:
|
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Zitat:
Kann man das irgendwo festlegen ob Punkt oder Komma verwendet werden soll? Wenn das Programm auf einem englischem System läuft würde ja dann wieder ne Exception kommen. |
Re: Bei try..except Zeilenr. der fehlerhaften Zeile ausgeben
Zitat:
Zitat:
Das ist das, was ich grundsätzlich meinte: Exceptions sind (nach meiner bescheidenen Meinung) allermeistens das Ende eines (programmtechnischen) "Missverständisses". Sobald eine geworfen wird, gucken warum und Missverständnis aus dem Weg räumen. Ganz besonders bei häufigen Exceptions. Solange Exceptions die Regel und nicht die Exception (=Ausnahme :zwinker: ) sind, hat der Programmierer noch andere Dinge zu tun, als sich über viele oder weniger viele try..except-Blöcke Gedanken zu machen. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 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