Exception Handling in C#?


11.10.2021, 13:42

Das ganze ist in einer do while Schleife.

Als Error kommt dann "Use of unassigned local variable "age" "

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

In dem Catch Block fehlt das Return, da du ja danach nicht weiter machen willst.

Also

try {
  versuch was
} catch {
  hat nicht funktioniert
  return;
}

Oder wenn return nicht verwenden kannst/willst, dann pack eben alles in den Try Block rein.

Da du in einer While Schleife bist, kannst du folgendes machen

try {
  versuch was
} catch {
  hat nicht funktioniert
  continue;
}
Als Error kommt dann "Use of unassigned local variable "age" "

Das kommt daher, dass du vorher wahrschein nur int age; gemacht hast.

Du müsstest int age = 0; machen. Dann ist die fertig initialisiert. Dann meckert die IDE auch nicht rum.

NFSMostWanted29 
Fragesteller
 11.10.2021, 13:43

Achso. Wenn du Zeit und Lust hast, könntest du mir vielleicht erklären, was genau return bei dieser Situation z.B macht? Das verstehe ich nicht ganz :D

0
Xearox  11.10.2021, 13:44
@NFSMostWanted29

return bricht die Methode ab. Allerdings hast du als Nachtrag hinzugefügt, dass du in einer While Schleife bist, dann machst du statt return ein continue;

Habe meine Antwort nochmal aktualisiert.

2
NFSMostWanted29 
Fragesteller
 11.10.2021, 13:52
@Xearox

ein return hat da auch funktioniert. Vielen Dank für deine Antwort :)

1

Du musst Die Fehlermeldung besagt, das die Variable "age" nicht deklariert wurde.Du musst die variable z.B. mit

int age = 0;

vor deiner While-Schleife deklarieren, dann funktioniert das auch.

Woher ich das weiß:Berufserfahrung – Senior-Softwaredeveloper mit 20 Jahren Berufserfahrung.

if (!int.TryParse(Console.ReadLine(),age) {
/* Meldung ausgeben, wenn kein int ausgegeben wurde */
}

WitchHunter0815  11.10.2021, 13:49

Schlüsselwort out nicht vergessen !

0
NFSMostWanted29 
Fragesteller
 11.10.2021, 14:00
@WitchHunter0815

Ah, habs. Aber dann kommt da das

if(!int.TryParse(Console.ReadLine(),age,out) 
{

}

"Invalid expression term ')' "

0
Tastaturbrix  11.10.2021, 14:44
@NFSMostWanted29

Wenn du die Variable age schon vorher definiert hast sieht es so aus:

if (!int.TryParse(Console.ReadLine(), out age))
{
     //irgendwas 
}
1
Tastaturbrix  11.10.2021, 14:45
@Tastaturbrix

Du musst in der if das out richtig Positionieren ohne Komma.

Falsch:
if(!int.TryParse(Console.ReadLine(),age,out))
Richtig:
if(!int.TryParse(Console.ReadLine(),out age)) 
1