Servus Community, mein erster Thread!
Hallo, wir sollen mit Exceptions arbeiten.
Dabei sollen 2 Fehler abgefangen werden und folgelnde Konsolenausgabe erzeugt werden:
Der Code lautet folgendermaßen:
Damit Exception1 und Exception2 funktionieren habe ich im gleichen Package 2 Klassen definiert:
und
mein Code lautet dann folgendermaßen.
Das Programm wird korrekt ausgeführt, aber als Ausgabe erhalte ich folgendes:
Warum wird da zweimal die gleiche Zeile ausgegeben?
Vielen Dank,
Münchner
Hallo, wir sollen mit Exceptions arbeiten.
Dabei sollen 2 Fehler abgefangen werden und folgelnde Konsolenausgabe erzeugt werden:
Code:
Exception bei Versuch 1
Exception bei Versuch 2
TEST
Fertig!
Der Code lautet folgendermaßen:
Code:
public class ExceptionTest {
public static void printUpperCase(String s) throws Exception1, Exception2 {
if (s == null)
throw new Exception1();
if (s.length() == 0)
throw new Exception2();
String upper = s.toUpperCase();
System.out.println(upper);
}
public static void printUpperCaseForArray(String[] array, int num) {
for (int i = 1; i <= num; i++) {
printUpperCase(array[i - 1]);
}
System.out.println("Fertig!");
}
public static void main(String[] args) {
String[] text = { null, "", "test" };
printUpperCaseForArray(text, 3);
Damit Exception1 und Exception2 funktionieren habe ich im gleichen Package 2 Klassen definiert:
Code:
public class Exception1 extends Exception {
}
Code:
public class Exception2 extends Exception1 {
}
mein Code lautet dann folgendermaßen.
Code:
public class Exception_Test {
public static void printUpperCase(String s) throws Exception1, Exception2 {
if (s == null)
throw new Exception1();
if (s.length() == 0)
throw new Exception2();
String upper = s.toUpperCase();
System.out.println(upper);
}
public static void printUpperCaseForArray(String[] array, int num) {
for (int i = 1; i <= num; i++) {
try {
printUpperCase(array[i - 1]);
} catch (Exception1 e) {
System.out.println("Exception bei Versuch 1");
}
finally{
System.out.println("text[1] war null!");
System.out.println("text[2] war leer!");
}
}
System.out.println("Fertig!");
}
public static void main(String[] args) {
String[] text = { null, "", "test" };
printUpperCaseForArray(text, 3);
}
}
Code:
Exception bei Versuch 1
Exception bei Versuch 1
TEST
Fertig!
Warum wird da zweimal die gleiche Zeile ausgegeben?
Vielen Dank,
Münchner