AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rückgabewert für Login-Funktion?

Ein Thema von Yheeky · begonnen am 25. Jun 2008 · letzter Beitrag vom 26. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Rückgabewert für Login-Funktion?

  Alt 25. Jun 2008, 18:07
Zitat von RavenIV:
- Exceptions auffangen
- Exception auswerten und entsprechend reagieren
Muss man evtl. nicht einmal machen. Sofern die Loginfunktion auf eine Useraktion folgt (ButtonClick, MenuClick, etc.) wird die Fehlermeldung sauber nach außen durchgereicht und schön angezeigt. Und das PRogramm läuft ordnungsgemäß weiter. Der User weiß, dass er das Login wiederholen muss.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Rückgabewert für Login-Funktion?

  Alt 26. Jun 2008, 03:09
Exception = Ausnahme. An und für sich ist das eine philosophische Frage, aber man könnte es evtl. so sagen: Exceptions verwende ich, wenn auf Grund des aufgetretenen Fehlers ein stabiles Weiterlaufen der Methode nicht mehr möglich ist, bzw. die Funktion nicht mehr gewahrt ist - also der Zustand nach Auftreten undefiniert ist. Das Exceptionshandling kümmert sich dann um eine saubere Rückkehr aus dem Call, und informiert den Aufrufer darüber, dass eine Situation aufgetreten ist, die nicht sein darf/kann.
Im Falle einer Login-Funktion, die es eben zur Aufgabe hat zu prüfen ob die Daten gültig sind, ist der Fall der Ungleichheit wohl definiert, und keine "Ausnahme", sondern ein erwartetes mögliches Ergebnis, und der Programmfluss wird keineswegs kompromitiert. Von daher würde ich in diesem Fall nicht einmal auf die Idee kommen, Exceptions einzusetzen.

Etwas anderes ist es, wenn z.B. mit einem String aus einer Datei verglichen werden soll, die Datei aber nicht existiert. Hier ist das erwartete Verhalten: Datei ist da, String ist drin, so wirds schließlich ausgeliefert. In dem Fall ist eine Ausnahme eingetreten, zumal es die Gesamtfunktion nachhaltig beeinflusst: KEIN Login kann mehr funktionieren - Prinzipbedingt, nicht weil der User falsche Daten eingegeben hat (was man durchaus erwarten kann), sondern weil etwas unerwartetes passiert ist.
Aber auch das ist imho eigentlich noch zu "weich" für eine Exception. Typische Fälle sind da eher Griffe in Speicherbereiche ausserhalb jeglicher Range, Stackoverflows, defekte Hardware usw.. Das meiste andere ist in definierten Zuständen behandelbar.

Oftmals sind die Messages der Exceptions auch für den Kunden nicht aussagekräftig. Daher würde ich auch niemals eine Exception "einfach so" durchflutschen lassen, sondern zumindest einen generellen Handler machen, der genau beschreibt was wobei nicht geklappt hat, und zwar funktional, damit der User einen Bezug dazu hat - mit technischem Blabla hat der ja meist nichts zu tun - und hänge die Exception-Message daran an, damit er bei einer Supportanfrage auch den technisch relevanten Teil durchgeben kann.
Man stelle sich vor Otto zu sein, und darf auf einmal lesen "Listeninxed überschreitete das Maximum (-1)", als man versucht eine mp3-Datei in seinen Player zu Drag-und-Droppen. Für Otto total nutzlos.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: Rückgabewert für Login-Funktion?

  Alt 26. Jun 2008, 08:53
Zitat von Medium:
Exception = Ausnahme.
<Text gekürzt>
Ich bin 100% genau der gleichen Meinung.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#14

Re: Rückgabewert für Login-Funktion?

  Alt 26. Jun 2008, 13:08
@Medium: Ich verstehe deine Argumentation. Aber, und auch das ist natürlich philosophisch, du beschreibst die Nutzung von Exceptions ausschließlich für unerwartete Fehler. Jedoch ist eine Exception, die man abfängt, nicht unerwartet - im Gegenteil, wenn man zum Beispiel einmal FxCop über ein Programm laufen lässt, wird der sich beschweren, wenn man einen allgemeinen Exception-Handler gebaut hat - weil man damit einen unerwarteten (!) Fehler abfängt, obwohl man nicht weiß, wie er zu behandeln ist. Fängt man jedoch eine spezifische Exception, erwartet man sie ja und kann damit umgehen (und sei es im schlimmsten Fall nur eine Fehlermeldung). Kann man es nicht, fängt man sie eben nicht oder wirft sie weiter.

Zitat:
Im Falle einer Login-Funktion, die es eben zur Aufgabe hat zu prüfen ob die Daten gültig sind, ist der Fall der Ungleichheit wohl definiert, und keine "Ausnahme", sondern ein erwartetes mögliches Ergebnis, und der Programmfluss wird keineswegs kompromitiert. Von daher würde ich in diesem Fall nicht einmal auf die Idee kommen, Exceptions einzusetzen.
Ich stimme damit sofort überein, wenn die Login-Funktion nur die Gültigkeit prüfen soll - wenn sie jedoch auch noch den tatsächlichen Login-Vorgang durchführen soll, ähnelt sie von ihrer Art her eher einer FileOpen-Funktion, und man muss sich drüber streiten, ab wie häufigem Auftreten ein Fehlerfall eine Ausnahme ist oder nicht. Das ist mir zu mühselig. Wo ist eine Ausnahme definiert? Sie tritt in maximal 0,1% aller Fälle auf? Und was, wenn jetzt meine Login-User nur jedes zweitausendste Mal ein falsches Passwort eingeben, deine jedoch jedes fünfhundertste mal? Müssen wir dann unsere Fehler deshalb unterschiedlich behandeln? Das will mir nicht in den Kopf. Oh, und ist so auch nicht ganz ernst gemeint, keine Sorge.
Ich finde nur, eine Login-Funktion hat die Funktion, einen Login durchzuführen - klappt das nicht, ist das schon irgendwie eine Ausnahme. Aber da genau drehen wir uns wieder im Kreis, es ist eine Definitionsfrage. Ich nehme eure Argumentation einfach einmal auf und denke das nächste mal drüber nach, wenn ich in so eine Situation komme.
Hängt das vielleicht auch ein bisschen an der jeweiligen Umgebung, die man verwendet? In C++ zum Beispiel ist es in der STL auch unüblich, Exceptions zu werfen, oder es gibt teilweise Operationen doppelt (einmal mit Fehlercode und einmal mit Exception), und auch Qt kommt weitgehend ohne aus. In Java oder .NET sieht man Exceptions hingegen überall.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Rückgabewert für Login-Funktion?

  Alt 26. Jun 2008, 14:35
Hi,

Zitat von OregonGhost:
Mal als neugierige Frage an alle: Was spricht gegen eine Exception im Fehlerfall?
unabhängig vom Thread-Kontext: Das Kriterium für das Werfen einer Ausnahme ist nicht die relative Wahrscheinlichkeit für das Eintreten einer speziellen Fehlersituation, sondern die Frage, ob du diese Situation an der Stelle des Auftretens behandeln willst und kannst.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:43 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