Ich schreibe ein Programm in C #, und ich möchte Ausnahmen durch die Konvertierung von "" (null) zu int. Wie lautet der Name der Ausnahme?
BEARBEITEN: Ich bin mir nicht sicher, ob ich hier den vollständigen Code zeigen kann ... Aber ich bin sicher, dass Sie nicht den vollständigen Code benötigen, also:
%Vor%Wenn Sie es vermeiden können, codieren Sie nicht nach der Ausnahme!
Der Name der Ausnahme, nach der Sie suchen, heißt FormatException
.
Es wäre jedoch schlauer, zuerst eine TryParse
für das Objekt, das Sie analysieren möchten, zu machen, z. B.
Sie erhalten eine FormatException , wenn eine Analyse fehlschlägt. Warum nicht stattdessen int.TryParse verwenden?
Als Randnotiz können Sie die Ausnahme auf einfache Weise herausfinden, indem Sie sie ausführen. Wenn Sie auf den Fehler stoßen, erhalten Sie den Namen der Ausnahme.
Schauen wir uns in der Dokumentation an (was eine viel sauberere Lösung ist, die "versucht" es aus "):
public static int Parse (Zeichenfolge s)
[...]
Ausnahmen:
ArgumentNullException
: s ist null.FormatException
: s hat nicht das richtige Format.
Dies sollte Ihre Frage beantworten. Wie andere bereits erwähnt haben, stellen Sie vielleicht die falsche Frage und möchten Int32.TryParse verwenden stattdessen.
Hängt davon ab, was Sie für die Konvertierung verwenden. Zum Beispiel wirft int.Parse
ArgumentNullException
, FormatException
, oder OverflowException
. Quoten sind es ArgumentNullException
, die Sie suchen, aber wenn das eine leere Zeichenfolge anstelle einer Nullreferenz ist, wird es wahrscheinlich FormatException
Sie erhalten eine FormatException , wenn eine Analyse fehlschlägt. Warum nicht stattdessen int.TryParse verwenden?
Ich schreibe ein Programm in C #, und ich möchte Ausnahmen durch die Konvertierung von "" (null) zu int. Wie lautet der Name der Ausnahme?
BEARBEITEN: Ich bin mir nicht sicher, ob ich hier den vollständigen Code zeigen kann ... Aber ich bin sicher, dass Sie nicht den vollständigen Code benötigen, also:
%Vor%Wenn Sie es vermeiden können, codieren Sie nicht nach der Ausnahme!
Der Name der Ausnahme, nach der Sie suchen, heißt System.InvalidCastException
.
Es wäre jedoch schlauer, zuerst eine %code% für das Objekt, das Sie analysieren möchten, zu machen, z. B.
%Vor%Schauen wir uns in der Dokumentation an (was eine viel sauberere Lösung ist, die "versucht" es aus "):
public static int Parse (Zeichenfolge s)
[...]
Ausnahmen:
- %code% : s ist null.
- %code% : s hat nicht das richtige Format.
Dies sollte Ihre Frage beantworten. Wie andere bereits erwähnt haben, stellen Sie vielleicht die falsche Frage und möchten Int32.TryParse verwenden stattdessen.
Wenn die Ausnahme ausgelöst wird, können Sie ihren Typ erkennen. Die schlaue Sache zu tun ist, diesen Fall zu behandeln und eine anmutige Nachricht an Ihren Benutzer anzuzeigen, wenn möglich.
Sie suchen wahrscheinlich nach einem %code% , obwohl ich denke, das hängt davon ab, wie Sie die Konvertierung durchführen.
Das heißt, wäre es nicht schneller / einfacher, einfach den Code zu schreiben und es selbst zu versuchen? Insbesondere, weil Sie wie nicht angegeben haben, führen Sie die Konvertierung durch.
Hängt davon ab, was Sie für die Konvertierung verwenden. Zum Beispiel wirft %code% %code% , %code% , oder %code% . Quoten sind es %code% , die Sie suchen, aber wenn das eine leere Zeichenfolge anstelle einer Nullreferenz ist, wird es wahrscheinlich %code%
seinProbieren Sie es einfach aus. Dieser Code:
%Vor%löst eine FormatException aus.
Als Randnotiz können Sie die Ausnahme auf einfache Weise herausfinden, indem Sie sie ausführen. Wenn Sie auf den Fehler stoßen, erhalten Sie den Namen der Ausnahme.
Ausnahmen sind teuer. Sie sollten int.TryParse verwenden. Wenn die Konvertierung fehlschlägt, wird der Boolesche Wert false zurückgegeben.
Convert.ToInt32 löst keine Formatausnahme ("Eingabezeichenfolge ist nicht im richtigen Format") in einer Nullzeichenfolge aus. Sie können das verwenden, wenn es akzeptabel ist, dass das Ergebnis für eine Null-Zeichenkette eine 0 ist. (kotzt immer noch auf einer leeren Schnur)
%Vor%Wenn Sie jedoch eine Nummer in der Box erwarten, sollten Sie TryParse (wie vorgeschlagen) oder einen Validator verwenden, um den Benutzer darüber zu informieren, dass er eine Nummer eingeben muss.
Probieren Sie es einfach aus. Dieser Code:
%Vor%löst eine FormatException aus.
Sie erhalten eine FormatException , wenn eine Analyse fehlschlägt. Warum nicht stattdessen int.TryParse verwenden?
Ich schreibe ein Programm in C #, und ich möchte Ausnahmen durch die Konvertierung von "" (null) zu int. Wie lautet der Name der Ausnahme?
BEARBEITEN: Ich bin mir nicht sicher, ob ich hier den vollständigen Code zeigen kann ... Aber ich bin sicher, dass Sie nicht den vollständigen Code benötigen, also:
%Vor%Wenn Sie es vermeiden können, codieren Sie nicht nach der Ausnahme!
Der Name der Ausnahme, nach der Sie suchen, heißt %code% .
Es wäre jedoch schlauer, zuerst eine %code% für das Objekt, das Sie analysieren möchten, zu machen, z. B.
%Vor%Schauen wir uns in der Dokumentation an (was eine viel sauberere Lösung ist, die "versucht" es aus "):
public static int Parse (Zeichenfolge s)
[...]
Ausnahmen:
- %code% : s ist null.
- %code% : s hat nicht das richtige Format.
Dies sollte Ihre Frage beantworten. Wie andere bereits erwähnt haben, stellen Sie vielleicht die falsche Frage und möchten Int32.TryParse verwenden stattdessen.
Wenn die Ausnahme ausgelöst wird, können Sie ihren Typ erkennen. Die schlaue Sache zu tun ist, diesen Fall zu behandeln und eine anmutige Nachricht an Ihren Benutzer anzuzeigen, wenn möglich.
Sie suchen wahrscheinlich nach einem %code% , obwohl ich denke, das hängt davon ab, wie Sie die Konvertierung durchführen.
Das heißt, wäre es nicht schneller / einfacher, einfach den Code zu schreiben und es selbst zu versuchen? Insbesondere, weil Sie wie nicht angegeben haben, führen Sie die Konvertierung durch.
Hängt davon ab, was Sie für die Konvertierung verwenden. Zum Beispiel wirft %code% %code% , %code% , oder %code% . Quoten sind es %code% , die Sie suchen, aber wenn das eine leere Zeichenfolge anstelle einer Nullreferenz ist, wird es wahrscheinlich %code%
seinProbieren Sie es einfach aus. Dieser Code:
%Vor%löst eine FormatException aus.
Als Randnotiz können Sie die Ausnahme auf einfache Weise herausfinden, indem Sie sie ausführen. Wenn Sie auf den Fehler stoßen, erhalten Sie den Namen der Ausnahme.
Ausnahmen sind teuer. Sie sollten int.TryParse verwenden. Wenn die Konvertierung fehlschlägt, wird der Boolesche Wert false zurückgegeben.
Convert.ToInt32 löst keine Formatausnahme ("Eingabezeichenfolge ist nicht im richtigen Format") in einer Nullzeichenfolge aus. Sie können das verwenden, wenn es akzeptabel ist, dass das Ergebnis für eine Null-Zeichenkette eine 0 ist. (kotzt immer noch auf einer leeren Schnur)
%Vor%Wenn Sie jedoch eine Nummer in der Box erwarten, sollten Sie TryParse (wie vorgeschlagen) oder einen Validator verwenden, um den Benutzer darüber zu informieren, dass er eine Nummer eingeben muss.
Convert.ToInt32 löst keine Formatausnahme ("Eingabezeichenfolge ist nicht im richtigen Format") in einer Nullzeichenfolge aus. Sie können das verwenden, wenn es akzeptabel ist, dass das Ergebnis für eine Null-Zeichenkette eine 0 ist. (kotzt immer noch auf einer leeren Schnur)
%Vor%Wenn Sie jedoch eine Nummer in der Box erwarten, sollten Sie TryParse (wie vorgeschlagen) oder einen Validator verwenden, um den Benutzer darüber zu informieren, dass er eine Nummer eingeben muss.