wyjątki, implementacja interfejsu

0
 interface ZgadywankaExc {
void czyToTaLiczba( int i ) throws ZgadywankaExc.ArgumentTooLarge,
                                              ZgadywankaExc.ArgumentTooSmall;

class ArgumentTooLarge extends Exception {}
class ArgumentTooSmall extends Exception {}
}

jak mam użyć takiego interfejsu żeby znalazł szukaną liczbę?

zrobiłem coś takiego, ale to chyba nie zbyt dobrze jest zrobione

     static int odp;
    public static void main(String[] args) {        
        odp = 500;
        LoteriaImpl a = new LoteriaImpl();
        for(int i = 0; i < 1000; i++){
            try{
                a.czyToTaLiczba(odp);
            }
            catch(Exception ArgumentTooLarge){
                odp = odp / 2;
                continue;
            }
            catch(Exception ArgumentTooSmall){
                odp = odp * 2;
                continue;
            }
            break;
        }
        System.out.println();
    }
0

http://pl.wikipedia.org/wiki/Wyszukiwanie_binarne

ATSD
Kiepsko zaprojektowany kod. Wyrzuć statyczne pola (tutaj w ogóle możesz zrobić zmienną lokalną), niech w metodzie głównej main będzie tylko utworzenie obiektu i odpalenie na nim metody, np jeśli ta metoda jest w klasie Main to możesz zrobić metodę np run() do której przeniesiesz logikę i w metodzie main() dasz new Main().run(). Po drugie korzystaj z najbardziej ogólnych typów w miarę możliwości, np zamiast LoteriaImpl a = new LoteriaImpl(); daj ZgadywankaExc a = new LoteriaImpl();

0

Dzięki za radę.
Mi raczej chodzi o to jak mam przechwycać te wyjątki. No bo metoda czytoTaLiczba rzuca tylko wyjątkami które nie wiem jak łapać.

0

Nie możesz dwa razy łapać tego samego typu. Kolejne catch'e łapią tylko te wyjątki, które nie są obsłużone przez poprzednie. Masz dwa rozłączne typy to je łap normalnie.

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