Witam. Zapoznałem się z kilkoma tutorialami na ten temat, ale dalej nie rozumiem kilku rzeczy.
public
class Magazyn{
private Kontener[] tab;
private int ilosc;
public Magazyn(){
tab = new Kontener[5];
ilosc = 0;
}
public void zaladuj(Kontener k) throws Exception{
if(tab.length <= ilosc)
throw new Exception("Magazyn jest pełny");
else{
tab[ilosc++] = k;
}
System.out.println("Zaladowano: "+ilosc+" \t "+k);
}
public Kontener wyladuj() throws Exception{
if(ilosc == 0)
throw new Exception("Magazyn jest pusty");
Kontener k = tab[--ilosc];
tab[ilosc] = null;
System.out.println("Wyladowano: "+ilosc+" \t "+k);
return k;
}
public void add(Kontener k){
try{
if(ilosc == 0)
this.zaladuj(k);
else{
if(tab[ilosc-1].getDni() < k.getDni()){
Kontener tmp = this.wyladuj();
add(k);
this.zaladuj(tmp);
}else
this.zaladuj(k);
}
}catch(Exception ex){
System.out.println(ex);
}
}
}
- Jeżeli nie obsłużymy wyjątku w metodzie blokiem try-catch tylko napiszemy samo
throws xxxException
, to musimy to zrobić w metodzie main, tam gdzie chcemy skorzystać z metody wywalającej wyjątek tak? Tzn. musimy przy jej wywołaniu objąć ją blokiem try-catch - Jeżeli tak jak tutaj w mtodzie zaladuj napiszemy
throw new Exception
to musi być rozumiem napisanethrows
w metodzie, po czym musi to być obsłużone tak jak w pkt. 1? - Co robi
new Exception
tworzy nam nasz własny wyjątek? - Co wywali
catch(Exception ex){
System.out.println(ex);
}
w metodzie add? Co to jest za exception?
5. Kiedy obsługiwać wyjątek w metodzie tak jak jest to w metodzie add, a kiedy napisać samo throws i zrobić to w miejscu wywołania tej metody??
Mam nadzieję, że chociaż część z moich pytać zrozumiecie i trochę mnie naprowadzicie. Pozdrawiam
`dodanie znaczników i ```
- @furious programming