try und catch Blöcke

Status
Nicht offen für weitere Antworten.

Felix Zegert

Neues Mitglied
Hi Leute,
Ich habe mal ne Frage zu den try und catch Blöcken, dazu poste ich mal kurz zwei mini Programme, anhand derer ich meine
Frage dann stellen werde. Beide Programme sollen mit Start Argumenten ausgeführt werden, jedoch funktioniert das 2. Programm nicht.

Programm 1:

public class Frage{
public static void main (String [] args) {
int a = Integer.parseInt(args[0]);


System.out.println(a);
}
}

------------------------------------------------------------------
Programm 2 :
public class Frage2 {
public static void main (String []args) {
try {
int a = Integer.parseInt(args[0]);
}
catch(NumberFormatException b) {
System.out.println("Aufrufparameter ist nicht zulässig");
}

System.out.println(a);
}
}

--------------------------------------------------------------------
Als Fehlermeldung erhalte ich:
Cannot find variable a ....

Das kann ich jedoch überhaupt nicht verstehen, da ich die variable a ja deklariert und durch parse-Methode ihr
auch einen Wert zugewiesen habe. Wieso funktioniert es bei Programm 1 einwandfrei und bei Programm 2 nicht??
Mit dem try und catch Block will ich doch lediglich eine mögliche NumberFormatException abfangen.

Ich hoffe, dass Ihr Profis mir helfen könnt.
 

faetzminator

Gesperrter Benutzer
Das ganze nennt sich Scope, also der Sichtbarkeitsbereich einer Variable. wenn eine Variable in {} (in deinem Fall try { } catch()) definiert wurde, kann man sie nur dort verwenden.
 

Felix Zegert

Neues Mitglied
Wie kann ich dieses Problem umgehen. Ich habe es mit dieser Programm probiert

public class Frage2 {
public static void main (String []args) {
int a;

try {
a = Integer.parseInt(args[0]);
}
catch(NumberFormatException b) {
System.out.println("Aufrufparameter ist nicht zulässig");
}

System.out.println(a);
}
}
----------------------------------------------------------------
Ich bekomme jedoch genau die gleiche Fehlermeldung.
Also wie kann ich dieses Problem lösen?
 
S

SlaterB

Gast
int a = 0;

denn sonst ist nicht sichergestellt, ob a überhaupt einen Wert enthält,
im Gegensatz zu Klassenattributen sind lokale Variablen nicht automatisch mit 0 oder null belegt

aber die gleiche Exception kann das nicht sein, müsste jetzt "The local variable a may not have been initialized" lauten,
ziemlich selbsterklärend..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
M IndexOutOfBoundsException / Try-Catch Allgemeine Java-Themen 9
K Zweifacher Try-Catch Allgemeine Java-Themen 6
ralfb1105 LogManager logger schreibt nicht in Catch() Zweig Allgemeine Java-Themen 2
C try-catch Block Verständnisfrage Allgemeine Java-Themen 14
F Try/catch über ganze Klasse Allgemeine Java-Themen 9
C Unendlich Wiederholungsfehler bei try catch - Block Allgemeine Java-Themen 3
H try catch Allgemeine Java-Themen 4
V Designfrage: try-catch-throws Allgemeine Java-Themen 11
E Immer nur der Catch-Zweig Allgemeine Java-Themen 3
N String aus Try/Catch-Block übernehen Allgemeine Java-Themen 14
B Execption auf Oberfläche werfen, try-catch-Block Allgemeine Java-Themen 6
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
R return in try-catch-Blöcken Allgemeine Java-Themen 6
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
Final_Striker Exceptionhandling: Richtige Verwendung des Try/Catch Blocks Allgemeine Java-Themen 14
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
P Methodenaufruf von catch Allgemeine Java-Themen 2
S native methoden in try / catch ? Allgemeine Java-Themen 3
V Was tun mit "nötigen" Catch-Blöcken? Allgemeine Java-Themen 3
V Try-Catch und Code der folgt? Allgemeine Java-Themen 3
B Try/Catch in While-Schleife mit Scanner - Hilfe! Allgemeine Java-Themen 3
E try/catch Block um ganzes Programm Allgemeine Java-Themen 10
T rießiger try - catch - Block Allgemeine Java-Themen 13
M try-catch (Wie erzwing ich die catch-Anweisung)? Allgemeine Java-Themen 13
L Try ... Catch Allgemeine Java-Themen 3
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
J Rekursive Methode und if-Blöcke, was wird noch ausgeführt? Allgemeine Java-Themen 2
M Liste in Blöcke aufteilen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben