Exceptions ...

matcho

Mitglied
Ich steh echt auf Kriegsfuß mit Java. Könnte mir vielleicht jemand auf die Sprünge helfen bei folgender Aufgabe:

Code:
public static int[] convertStr(String[] arc) {
		int[] temp = new int[scr.length];
		src[src.length -1] = null;
		int i = 0;
		while (i <= new Integer(src[0])) {
			System.out.println(src[i+1].length());
			i = i + 2;
		}
		return temp;
	}

1. Nennen Sie 3 Ausnahmen, die diese Methode auslösen kann!

Geben Sie für jede der genannten Ausnahmen einen Wert für den Parameter der Methode an, bei dem die Ausnahme ausgelöst wird.

Ergänzen Sie die Methode so um Ausnahmebehandlungen, dass die unterschiedlichen Ausnahmen individuell behandelt werden können!

zu 1.)
  • NumberFormatException
  • IOException
zu 2.)
hmm
zu 3.)
...

Ich wäre über etwas Hilfestellung äußerst dankbar :noe:
 

Onkel Hatti

Bekanntes Mitglied
Die Variable "src" ist nirgendwo deklariert, der Parameter für die Methode ist "arc". das gibt ne Exception. Welche?
Geh mal die Möglichkeiten durch. Ist es möglich, dass src.length = 0 ist? Was passiert dann und welche Exception wird geworfen? Wie fängt man sie ab?
Nervös werde ich, wenn auf berechnete oder feste Elemente eines Arrays in einer Schleife zugegriffen wird, in der obigen Methode z.B. bei "System.out.println(src[i+1].length())". Kann es passieren, das durch das i+1 auf Elemente zugegriffen werden soll, die gar nicht existieren? Wenn ja, welche Exception wird dann geworfen? Wie fängt man sie ab?

Hilft das auf die Sprünge?

Hatti
 

matcho

Mitglied
1) NullpointerException in Zeile 2 und 3 (src.length)
2) ArrayIndexOutOfBoundsException in Zeile 5 und 6, da nicht geprüft wird, wie viele Werte in src stehen
3) NumberFormatException in Zeile 5, da ein String nicht umbedingt in eine Zahl gecastet werden kann

Werte zum Auslösen der Exception:
1) src == null
2) String[] src = {}; // leeres Array
3) src[0] == "bla"

wie ich nun die try catch einbringe, ist mir noch nicht ganz klar
 

Onkel Hatti

Bekanntes Mitglied
Naja, da fehlen noch ein paar Zeilenangaben...
Hinweis:
In src[0] steht, wie oft die Schleife durchlaufen werden soll.
In der Zeile in der Schleife wird das um 1 erhöhte Element aus dem Array src gelesen. Danach sogar die Schleifenvariable um 2 erhöht. Es gibt natürlich eine Konstellation, wo das "src[i+1]" gerade ein Element des Arrays "greift", welches nicht existiert?

Exceptions werden abgefangen, indem man die betrofenen Zeilen in einen try-catch Block packt.
Bei der Schleife entweder die ganze Schleife in einen try-catch Block packen, oder das Codestück "auslagern", d.h. das
das "new Integer(src[0])" in eine eigene Zeile, die dann mit einem try-catch Block umfasst wird.

Hatti
 

Neue Themen


Oben