Naprawianie błędu
Błędy (Error) to poważne problemy w świecie Javy. Czasem wynikają z problemów środowiskowych, na które nie mamy wpływu. Innym razem możemy napisać kod, który sam je wywołuje. W tym ćwiczeniu przyjrzysz się aplikacji, która nigdy się nie kończy i generuje Error – konkretnie StackOverflowError – a następnie ją poprawisz. Zobaczenie takiego błędu pomoże ci rozpoznawać go w przyszłości. W odróżnieniu od wyjątków, błędów nie można obsłużyć za pomocą bloków try-catch ani słowa kluczowego throws.
To ćwiczenie jest częścią kursu
Typy danych i wyjątki w Javie
Instrukcje do ćwiczenia
- Uruchom przykładowy kod w obecnej postaci – wartość
cyclesnigdy się nie zmienia, co prowadzi do nieskończonej pętli wywołań, powoduje awarię aplikacji i generujeStackOverflowError. - Po zaobserwowaniu
StackOverflowErrordodaj+ 1docyclesw wywołaniudoWork, dzięki czemu wartośćcyclesbędzie się zmieniać i nieskończona pętla zostanie przerwana. - Uruchom kod ponownie, aby sprawdzić, że aplikacja działa poprawnie i nie generuje już
StackOverflowError.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
public class ErrorGeneration {
public static void main(String[] args) {
System.out.println("Started the work");
doWork(0);
System.out.println("Work complete");
}
public static void doWork(int cycles) {
if (cycles < 10) {
// Add +1 to cycles after running
doWork(cycles);
}
}
}