Rückgabe bei Exception

Münchner

Aktives Mitglied
Servus Wochenende,

ich hab eine Klasse die Exceptions behandeln soll.
Für die Exceptions habe ich eine eigene Klasse, die von
Code:
Exception
erbt definiert.
Schaut so aus:
Java:
public class ArrayTooShortException extends Exception {
	
	public ArrayTooShortException(String msg){
		super(msg);
	}
	
}

Die wird für folgende Klasse verwendet:
Java:
public class Neighbour {
	public static void main(String[] args) {
		int []a=new int[]{1};
		try{
		System.out.println("Benachbarte Stellen im Array gleich? |"+neighbour(a)+"| Array_Laenge = "+a.length);
		}
		catch (ArrayTooShortException e){
			e.getMessage();
		}
	}
		
	public static boolean neighbour(int []arr)throws ArrayTooShortException{
		if(arr.length<2)throw new ArrayTooShortException("Array zu klein");
		for(int i=0;i<arr.length-1;i++){
		if(arr[i]==arr[i+1])
			return true;
		}
		return false;
	}

}
Die Klasse schaut halt, ob des Array gleiche Elemente hat. Wenns kürzer 2 is und somit keinen Vergleich machen kann, soll die Exception geworfen werden.
Ich check nur ned, wie ich -->
Code:
throw new ArrayTooShortException("Array zu klein");
auf die Konsole bekomm, ohne im
Code:
catch{}
Block über sysout was zu schreiben.
Gruß
Münchner
 
Weil ich ned weis😱
Also so:
Java:
public class Neighbour {
	public static void main(String[] args) {
		int []a=new int[]{1};
		try{
		System.out.println("Benachbarte Stellen im Array gleich? |"+neighbour(a)+"| Array_Laenge = "+a.length);
		}
		catch (ArrayTooShortException e){
			System.out.println(e.getMessage());
		}
	}
		
	public static boolean neighbour(int []arr)throws ArrayTooShortException{
		if(arr.length<2)throw new ArrayTooShortException("Array zu kurz");
		for(int i=0;i<arr.length-1;i++){
		if(arr[i]==arr[i+1])
			return true;
		}
		return false;
	}

}
 
Hmja... Aber noch allgemein: Man sollte mit dem Einführen neuer Exceptions... sparsam sein. In diesem Fall könnte man an dieser Stelle z.B. eine "IllegalArgumentException" werfen. Und... so eine Ausgabe auf der Konsole ist bei so kleinen Beispielen OK, aber in einem komplexeren Programm (also in "Prduktcode") würde man stattdessen eine Ausgabe über einen Logger machen oder einen eigenen ExceptionHandler verwenden oder die Exception nach oben weiterreichen oder so... Das System.out bezog sich wirklich nur auf dieses kleine Beispiel.
 
Merci für die Tipps.
Das Weiterreichen haben wir auch in einer anderen Aufgabe schon geübt, das kann ich anwenden.
Schönes We noch
 

Neue Themen


Zurück
Oben