Witam mam mały problem z zadaniem otóż mam za zadanie stworzyć klasę WTP z konstruktorem WTP (int a) która za podany argument w wywołaniu konstruktora stworzy tablicę i zamieści w niej wyliczony wiersz trójkąta pascala (a) następnie mam stworzyć metodę wsp(int b) która za podany argument , miejsce w danym wierszu wywołanym przez konstruktor zwróci wartość trójkąta dla danego miejsca. Wywołanie konstruktora i metody ma się odbywać za pomocą konsoli np. po kompilacji wpisanie java zad1 2 0 1 program ma stworzyć 2 wiersz trójkata i zwrócić wartości które znajdują się na 0 i 1 miejscu. Zamieszczę to co napisałem do tej pory:
import java.util.*;
public class zad1
{
static public class WTP
{
int[] wiersz;
public int wsp(int g)
{
return wiersz[g];
}
int silnia(int a)
{
if (a == 0)
{
return 1;
}
else
{
return a * silnia(a - 1);
}
}
WTP(int n)
{
if(n<0)
{
System.out.println("Zla dana");
}
else
{
this.wiersz = new int[n+1];
for(int i = 0; i<n+1; i++)
{
wiersz[i] = silnia(n) / ( silnia(n - i) * silnia(i) );
}
}
}
}
public static void main(String args[])
{
int a1 = Integer.parseInt(args[0]);
WTP tablica = new WTP(a1);
for(int k = 1; k<args.length; k++)
{
int t = Integer.parseInt(args[k]);
int b = tablica.wsp(t);
System.out.println(b);
}
}
}
Program działa dla podania prawidłowych danych, problem zaczyna się jak np. wpiszę w konsole 3 0 1 s 2. Nie wiem jak obsłużyć te błędy jeżeli ktoś za miejsce poda wartość ujemną, przekraczającą zakres tablicy lub literę. W treści zadania mam podane że muszę stworzyć dla tych sytuacji własny wyjątek jednak czytam o tym (uczę się z thinking in java Eckela.) i nie jestem w stanie pojąć na jakiej zasadzie to działa. Znalazł by ktoś chwilkę czasu i wytłumaczył mi to łopatologicznie najlepiej na jakimś konkretnym przykładzie jak wygląda to tworzenie wyjątków? Bardzo dziękuje za pomoc i czas mi poświęcony.