Wyjątki pomoc przy zadanku.

0

Witam forowiczów, problem tkwi w tym że nie wiem jak przepełnić, by dodać do tego wyjątek, siedzę na tym 3 godzinę. W javie jestem trochę zielony, a zgaduje że ktoś od razu wie co gdzie jak, mógłbym prosić o wskazówkę?

Treść zadania:

zmodyfikuj tak, aby w funkcji main można było przechwytywać wyjątki przepełnienia
(próba dodania, gdy liczba elementów w kolejce wynosi N) i niedomiaru kolejki
(próba pobrania elementu kolejki, gdy liczba elementów w kolejce wynosi 0):

public class Kolejka {
    static final int N = 5;
    private Object[] tab;
    private int pocz, zaost, lbel;

public Kolejka() {
        pocz = 0;
        zaost = 0;
        lbel = 0;
        tab = new Object[N];
    }

void doKolejki(Object el) {
        tab[zaost] = el;
        zaost = (zaost+1) % N;
        ++lbel;
    }

   Object zKolejki() {
        int ind = pocz;
        pocz = (pocz+1) % N;
        --lbel;
        return tab[ind];
    }
 }


 == MAIN ==

import java.util.InputMismatchException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;

public class Main {
    public static void main(String[] args) {
        Kolejka k = new Kolejka();

        try {
            k.doKolejki(new Integer(3));
            k.doKolejki(new String("Ala ma kota"));
            k.doKolejki(new Double(3.14));



            for (int i = 1; i <= 2; i++)
                System.out.println((k.zKolejki()).toString());
        }
        catch (NullPointerException e) {
            System.out.println("Przepelniona kolejka!");
        }
        catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Pusta kolejka!");

        }


        }
    }
1
  • try
  • catch
  • ArrayIndexOutOfBoundsException
1
xF3rN napisał(a):

Witam forowiczów,

Witam, sformatuj kod używając ```

problem tkwi w tym że nie wiem jak przepełnić,

ale ty nie masz przepełniać tylko dodać obsługę wyjątków (zmodyfikuj tak, aby w funkcji main można było przechwytywać wyjątki przepełnienia)

0

Tak, tak, tylko nie wiem jak zrobić wyjątek przepełnienia.
Żeby dodać wyjątek z niedomiaru kolejki to daje do kodu:
catch (NullPointerException e) {
System.out.println("Pusta kolejka!");
}

1
xF3rN napisał(a):

Tak, tak, tylko nie wiem jak zrobić wyjątek przepełnienia.

Wyjątek się robi tak new Exception, ale ty chcesz dodać obsługę wyjątku. To dwie zupełnie różne rzeczy

Żeby dodać wyjątek z niedomiaru kolejki to daje do kodu:
catch (NullPointerException e) {
System.out.println("Pusta kolejka!");
}

Jak wyjdziesz poza zakres to będzie wyjątek ArrayIndexOutOfBoundsException a nie NullPointerException. Więc zły wyjątem chcesz łapać. Możesz też próbować łapać wszystkie wyjątki za pomocą catch (Exception e), ale to jest uważane za złą praktykę

0

Tylko problem jest taki że pierw musi wyskoczyć błąd (tak mówił prowadzący), lecz gdy próbuję wyświetlić np. 6 element (a stała wynosi 5) to leci od początku i błędu nie ma :<

0

Już to ogarnąłem @KamilAdam DZIĘKUJĘ za to info :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1