Strona główna > Wyjątki w Javie, które budzą grozę

Wyjątki w Javie, które budzą grozę

Gdy uczyłam się programować, zawsze podnosiło mi się ciśnienie, gdy w konsoli pojawiało mi się na czerwono coś z “Exception” w nazwie. “Exception”, czyli wyjątek to sposob na poinformowanie, że coś poszło nie tak. Dzisiaj pokażę Ci trzy najpopularniejsze wyjątki w Javie, które wywołują zimny pot na karku osób początkujących w Javie (jak i każdy inny wyjatek, hehe). Wyjaśniam też, kiedy jaki błąd się pojawia i co w związku z tym można zrobić, żeby program naprawić.

NullPointerException

Chyba najczęstszy i budzący największą grozę wyjątek. Gdy go zobaczysz oznacza to, że w programie masz gdzieś niezainicjalizowany obiekt. Taki wyjątek zobaczysz na przykład, gdy spróbujesz wywołać metodę na obiekcie, któy jest null, czyli nie został zainicjalizowany, a jedynie zadeklarowany. Gdy zobaczysz taki wyjątek, poszukaj winowajcy: niezainicjalizowanego obiektu.

Najczęściej ten błąd widzę, gdy ktoś w testach Selenium zadeklaruje sobie elegancko zmienną WebDriver driver, ale potem np. w @BeforeEach (JUnit 5) zapomni go zainicjalizować.

ArrayIndexOutOfBoundsException

Takie coś zobaczysz na przykład w sytuacji, w której masz tablicę z 10 elementami, ale spróbujesz pobrać jedenasty element. Żeby pobrać konkretny element tablic w Javie, wystarczy podać indeks tego elementu, np. array[2]. Złośliwość polega na tym, że elementy tablicy numerowane są od zera, czyli żeby wskazać pierwszy element musisz użyć array[0]. Ostatni element w dziesięcioelementowej tablicy będzie miał indeks 9. Jeżeli zrobimy array[10] dostaniemy właśnie powyższy błąd.

IllegalArgumentException

Występuje, gdy program próbuje wykonać operację na niepoprawnych danych wejściowych. Przykład: gdy w Thread.sleep(), czyli metodzie pozwalacjąc na zatrzymanie programu na podaną ilość milisekund, podamy -10 jako ilość milisekund, np. Thread.sleep(-10). Ilość milisekund nie może być po prostu ujemna. Gdy zobaczysz taki wyjątek spróbuj namierzyć miejsce, gdzie na przykład przekazujesz niewłaściwy argument.

Pamiętaj również, że gdy zobaczysz jakiś wyjątek w konsoli, znajdziesz tam też informację, w której linii pojawił się problem. To zdecydowanie ułatwi Ci debugowanie kodu.

Zobacz też 5 najczętszych wyjątków w Selenium.

Chcesz poćwiczyć Javę w zadaniach? Dołącz do 5-dniowego wyzwania!

Codziennie dostaniesz jedno zadanie do rozwiązania, a następnego dnia przykładowe rozwiązania z komentarzem.