Probleme bei IllegalArgumentException "werfen".

Diskutiere Probleme bei IllegalArgumentException "werfen". im Java Basics - Anfänger-Themen Bereich.
J

JavaKev

Hallo, ich habe folgende Aufgabe: Implementieren Sie die Methode fillBucket(List<Integer>) items, Integer capacity), welche die Elemente der Liste items der Reihenfolge nach durchgeht und solange aufaddiert, dass capacity nicht überschritten wird. Alle Elemente, die hineingepasst haben, sollen als List wieder zurückgegeben werden. Sollte eine negative Zahl (oder null) auftreten, werfen Sie eine IllegalArgumentException. Werfen Sie diese Exception ebenso, falls capacity <=0 oder items oder capacity ungültig (null) ist.

Mein Code dazu:
Java:
    public static List<Integer> fillBucket(List<Integer> items, Integer capacity) throws  IllegalArgumentException{
        int counter = 0;
        List<Integer> result = new LinkedList<Integer>();
       try {
            for (int i = 0; i < items.size(); i++) {
                if (items.get(i) >= 0 && capacity > 0) {
                    if (capacity != null || items != null) {
                        counter += items.get(i);
                        if (capacity < counter) {
                            counter -= items.get(i);
                        } else {
                            result.add(items.get(i));
                          }

                    }
                }
            }
        } catch (IllegalArgumentException e) {
            System.out.println("Fehler: " + e.getMessage());
        }
        return result;
    }
Das Problem ist hier, dass ich nie in den catch Block komme, obwohl die if Anweisungen bei z.B. nur negativen Zahlen im Array falsch sind. Ich bekomme dann ein leeres Array raus, anstatt die Ausgabe vom catch Block. Kann mir da jemand vielleicht auf die Sprünge helfen?
 
F

fhoffmann

Du sollst die IllegalArgumentException auch nicht fangen, sondern werfen, also beispielsweise:
Java:
if (capacity <= 0) {
    throw new IllegalArgumentException("capacity muss positiv sein");
}
 
Thema: 

Probleme bei IllegalArgumentException "werfen".

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben