AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie viel Mühe gibt ihr euch Fehler abzufangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie viel Mühe gibt ihr euch Fehler abzufangen?

Ein Thema von Popov · begonnen am 2. Sep 2008 · letzter Beitrag vom 2. Sep 2008
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 13:56
Vielleicht wurde die Frage schon gestellt, aber ich stelle sie mir immer wieder. Wann ist der Guten genug?

Beispiel: ihr legt einige Daten (Mehrzahl von Datum) irgendwo in Stringform ab, z.B. in einer Ini. Jetzt wollt ihr die Daten incl. dazugehörige Informationen in ein ListView anzeigen. ListView schluckt Strings, also muß das Datum nicht überprüft werden. Nun stellen wir uns vor ein Witzbold ändert ein Datum in Textform von 01.09.2008 in 01.09.200F (Beachtet das F).

Nun stellt sich die Frage wie viel geprüft werden muß. An dieser Stelle wäre es egal, denn die Daten sollen hier nur angezeigt werden. Also einfach schlucken und unsinnige Daten anzeigen und den User selbst merken lassen? Überprüfen, aber ohne Hinweis weglassen, da falsches Datum? Oder bei jedem falschen Datum eine Fehlermeldung ausgeben?

An einer anderen Stelle werden die Daten verarbeitet. Hier muß das Datum stimmen. Wie hier reagieren? Falsche Daten ignorieren? Oder bei jedem falschen Datum eine Fehlermeldung, auch wenn das bedeutet, daß es 1000 falsche Daten sind und der User eine halbe Stunden Fehlermeldungen klicken muß? Oder einfach einen Zähler einbauen und wenn der nach dem gesamten Ablauf größer Null ist, informieren?

Wie gesagt, das mit den Daten ist nur ein konstruiertes Beispiel, also nicht klugscheißen und meinen, daß man Daten nicht als Textform speichert. Es geht nur drum wann man Fehler anfangen sollte. Ich hab immer das Gefühl, daß ich zuviel prüfe. Etwa die hälfte des Programms besteht bei mir in der Regel aus Abfangroutinen. Sogar da wo ich es nicht machen müßte, mache ich es. Bevor ich ein Text in ein TMemo lade prüfe ich zumindest ob die Datei vorhanden ist. Nun ob ich eine Fehlermeldung ausgebe oder das System ist eigentlich egal, aber ich mache es trotzdem.

Aber wie sehr sollte man den User vor sich selbst schützen? Sollte man alles immer überprüfen? Auch bei Daten die der User nicht manipulieren sollte? Sollte man es einfach verarbeiten und wenn einer die Daten manipuliert hat, dann ist er selbst schuld und wenn das Ergebnis falsch ist? Oder sollte man die User vor sich selbst schützen und alles überprüfen und abfangen?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 13:58
Zitat:
Oder sollte man die User vor sich selbst schützen und alles überprüfen und abfangen?
- nach Möglichkeit JA!
Ralph
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 14:01
Ich würde den Benutzer nur Dinge ändern lassen (Ini) welche er ändern können muss.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 14:03
Zitat von Popov:
Oder sollte man die User vor sich selbst schützen und alles überprüfen und abfangen?
Da ich im Web-Bereich taetig bin, muss ich per Definition eh alles was an Daten herkommt als Angriffsversuch werten. Dass man das teilweise nicht so "eng" sehen muss, duerfte aber auch klar sein.

Fakt ist, wenn du Daten laedst und sie anzeigst, muesstest du sie eigentlich nicht ueberpruefen. Wenn du sie aber verarbeitest (und sei es nur weil der Benutzer sich nach 10 Minuten gucken dazu entschieden hat) musst du sie auf Korrektheit pruefen und ne Fehlermeldung werfen, falls was nicht passt. In dem Fall wird sich der Benutzer aber fragen, was da los ist; schliesslich hat er die Daten ja schon zu Gesicht bekommen, also muss doch alles passen, oder?

Mein Tipp: pruef die Daten beim Laden. Wenn was nicht passt, zeig den Datensatz an und gib dem Benutzer die Option, den Datensatz zu korrigieren oder zu verwerfen. Wenn er es ernst meint, wird er das Datum das er vorhin geschrottet hat (bzw. nicht geschrottet hat, Benutzer wuerden sowas ja nie machen ) wieder korrigieren; wenn nicht verwirft er den Datensatz und du kannst normal weiterarbeiten.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 14:13
also ich habe z.b. ein paar kleiner progs, mit denen ich daten aus ne Textdatei einlese um sie dann in ne Datenbank zu schreiben. Wenn da ein Fehler auftaucht, schreibe ich die entspr. zeile zusammen mit nem Errorcode in eine log-datei. So läuft alles schön durch und man kann hinterher schauen was nicht i.o. war.

Generell sollte man alle Daten von denen man nicht weiß "woher" sie kommen, bzw "von wem" überprüfen.

Um bei deinem beispiel mit dem Datum zu bleiben, könnte man ja auch anbeiten z.B. bei ungültigen Zeichen im Jahr dieses durch einen Standardwert ersetzen zu lassen. (z.B: 2008).

Gruß
tr909
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 14:34
Das Setzen eines Standardwertes ist ja schließlich auch eine Art der Fehlerbehandlung . Grundsätzlich finde ich, es ist immer besser, den User bereits im Entstehen auf Eingabefelder Eingabefehler hinzuweisen, als dass man es erst bei der Weiterverarbeitung bemerkt oder (noch schlimmer) nicht abgefangene Exceptions auftreten. Spätestens beim 10. Mal heißt es sonst nämlich "Sch... Programm", obwohl es sich eigentlich um ein Layer8-Problem handelt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 16:21
Zitat von DeddyH:
Das Setzen eines Standardwertes ist ja schließlich auch eine Art der Fehlerbehandlung .
ich meinte damit eher sowas wie.
Datum ungültig! Geben sie ein Gültiges Datum ein:
[abbrechen] [übernehmen] [für alle weiteren übernehmen]

Gruß
tr909
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Wie viel Mühe gibt ihr euch Fehler abzufangen?

  Alt 2. Sep 2008, 17:37
Sofern Du deine Anwendung nach Funktion und Darstellung klar trennst, ergeben sich diese Fragen gar nicht. Denn dann werden wohldefinierte Daten geladen und visuell dargestellt. Eingaben werden dann wieder in die zugrundeliegenden Datenformate transformiert, sodaß hier per Defintionem eine wie auch immer geartete Fehlerbehandlung auftritt. Und zwar immer und überall.

Sofern Du sauber programmierst, diese Trennung klar durchziehst und grundlegende robuste Konvertierungsroutinen (String To Date etc.) verwendest, die jeden Fehler sauber bemängeln, musst Du Dir keine Gedanken machen: Deine Anwendung wird automatisch 'bullet proof'. Und dabei ist es dann (fast) egal, ob es sich um eine Web- oder Desktopanwendung handelt.

Beispielsweise kann ein Endlicher Automat sehr zuverlässig und beweisbar sicher sämtliche syntaktischen Fragen beantworten, ohne das er je abstürzt. Wenn der Automat korrekt ist, läuft das Teil einfach niemals nicht nie nie nie! gegen eine Wand.

Ich würde mir eine mächtige Werkzeugkiste anschaffen (oder zusammenbasteln), die die Alltagsaufgaben zuverlässig und immer nach dem gleichen Schema löst. Ich geh mal davon aus, das Du sowas schon längst hast.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz