Eingabe Fehler abfangen

FJK

Erfahrenes Mitglied
Hallo,

ich muss verschiedene Eingaben auf Richtigkeit prüfen, also auf eine Zahl, URL usw
nun finde ich im Netz verschiedene Lösungen unter anderem für die Prüfung einer Zahl:
Code:
               try
                {
                    number = Convert.ToDouble(Zahl);
                    return true;
                }
               catch
                {
                    return false;
                }

aber ich habe mal gelernt das Exeptions hierfür nicht geeignet sind und wirklich nur für Ausnahmen da sind. Sehe ich das jetzt falsch? wie würdet ihr das machen?
 
unter anderem für die Prüfung einer Zahl
Das ist wohl eher ein Beispiel dafür wie man es nicht machen sollte.

Die numerischen Datentypen haben alle eine Parse() bzw. TryParse() Methode die genau für diese Zwecke gedacht sind.
z.B.
Double.TryParse()
Double.Parse()

Im Falle einer URL kannst du dem Uri Konstruktor einen string übergeben.
Der Konstruktor kann bei z.B. falsch formatierten strings eine UriFormatException werfen.

Das dürfte dann auch deine Frage bzgl. Exceptions beantworten.
 
hmm,

also dann wars ja richtig :D
also try and catch habe ich kennengelernt für unerwartete Fehler, wenn der Anwender zB nach der Installation Dateien löscht und co.

kannst du mir die Uri nochmal genauer erklären?
 
also try and catch habe ich kennengelernt für unerwartete Fehler
Wie man am Beispiell von Uri sieht ist das eben nicht der Fall.
Die UriFormatException ist ja in diesem Fall keine unerwartete sondern im Falle eines nicht validen strings eine erwartete Ausnahme die es zu behandeln gilt.
Es spricht nichts dagegen erwartete Exceptions zu behandeln anstatt zu versuchen erst gar keine Exception zu werfen.
Das ist aber keine generelle Regel sondern immer Situationsbedingt.
 
Der Konstruktor der Uri Klasse erwartet einen string. Wenn dieser string keine valide Url ist wird eine UriFormatException geworfen.
Siehe msdn Doku :
http://msdn.microsoft.com/en-us/library/z6c2z492.aspx

UriFormatException:

uriString is empty.
-or-
The scheme specified in uriString is not correctly formed. See CheckSchemeName.
-or-
uriString contains too many slashes.
-or-
The password specified in uriString is not valid.
-or-
The host name specified in uriString is not valid.
-or-
The file name specified in uriString is not valid.
-or-
The user name specified in uriString is not valid.
-or-
The host or authority name specified in uriString cannot be terminated by backslashes.
-or-
The port number specified in uriString is not valid or cannot be parsed.
-or-
The length of uriString exceeds 65519 characters.
-or-
The length of the scheme specified in uriString exceeds 1023 characters.
-or-
There is an invalid character sequence in uriString.
-or-
The MS-DOS path specified in uriString must start with c:\\.
 

Neue Beiträge

Zurück