Mein Problem ist nun selbst wenn ich 1 eingebe kommt die Meldung "Zahl darf nicht größer als zehn sein
Das liegt daran, dass du hier
if (zahl > 10) {}
zahl = Integer.parseInt(args[0]);
throw new Exception("Zahl darf nicht größer als 10 sein!");
die Exception nicht in den {}
der if-Bedingung wirfst, die Exception wird also immer geworfen.
Außerdem sollte das parsen des Integer Wertes vor der if-Bedingung passieren.
Code:
public class Excep {
public static void main(String[] args) throws Exception {
int zahl;
try {
zahl = Integer.parseInt(args[0]);
if (zahl > 10) {
throw new Exception("Zahl darf nicht größer als 10 sein!");
}
if (zahl < 10) {
throw new Exception("Zahl darf nicht kleiner als 10 sein!");
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Bitte gib ein Argument!");
zahl = 2;
e.printStackTrace();
} catch (NumberFormatException f) {
System.out.println("bitte gib eine Zahl ein!");
zahl = 3;
f.printStackTrace();
} catch (Exception g) {
System.out.println("Zahl darf nicht größer oder kleiner als 10 sein!");
zahl = 4;
g.printStackTrace();
}
System.out.println(zahl);
}
}