Zrozumienie `panic`
Część sekcji Logika i przepływ sterowania ścieżki GO w Coddy. Lekcja 42 z 68.
W Go funkcja panic jest wbudowaną funkcją używaną w naprawdę wyjątkowych sytuacjach, gdy program napotyka nieodwracalny błąd i musi natychmiast się zatrzymać. W przeciwieństwie do zwykłych błędów, które obsługujesz w kontrolowany sposób, panic jest zarezerwowane dla katastrofalnych awarii wskazujących na fundamentalny problem z logiką programu lub jego środowiskiem.
Gdy wywołana zostaje panic, natychmiast zatrzymuje normalne wykonywanie bieżącej funkcji i rozpoczyna rozwijanie stosu wywołań. To bardzo różni się od typowego podejścia w Go, polegającego na zwracaniu błędów, które mogą być obsłużone przez kod wywołujący.
W idiomatycznym Go rzadko używa się panic. Społeczność Go zdecydowanie preferuje jawne obsługiwanie błędów za pomocą wartości zwracanych zamiast obsługi błędów opartej na panice. Możesz napotkać panic w sytuacjach takich jak odwołanie do elementu tablicy poza jej zakresem, dereferencja wskaźnika nil lub wykrycie przez bibliotekę niemożliwego stanu wskazującego na błąd programistyczny.
Większość programów w Go powinna obsługiwać błędy w przemyślany sposób, korzystając ze standardowego interfejsu błędów, o którym się uczysz. panic należy brać pod uwagę tylko wtedy, gdy naprawdę nie ma rozsądnego sposobu, by program mógł dalej działać.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowane sterowanie przepływem
Instrukcja switch z `fallthrough`Przerywanie zagnieżdżonych pętliKontynuowanie określonej pętliInstrukcja `goto`Podsumowanie — zaawansowane sterowanie pętlami4Projekt: Prosta lista zadań
Konfiguracja projektuDodawanie zadania7Obsługa błędów — dogłębnie
Własne typy błędówOpakowywanie błędów za pomocą `%w`Rozpakowywanie za pomocą `errors.Is`Rozpakowywanie za pomocą `errors.As`Zrozumienie `panic`Używanie `recover`Podsumowanie — bezpieczne dzielenie2Struktury i metody
Definiowanie metod dla strukturOdbiorniki przez wartośćOdbiorniki przez wskaźnikWybór odbiornikówMetody a funkcjePodsumowanie — działanie struktur5Mapy w szczegółach
Mapy strukturWskaźniki jako wartości mapSprawdzanie, czy mapy są nilPorównywanie mapPodsumowanie — licznik częstości słów3Interfejsy (podstawy)
Czym jest interfejs?Definiowanie interfejsuImplementowanie interfejsuUżywanie typów interfejsowychPusty interfejsAsercje typuPrzełącznik typówPodsumowanie – kształty i zachowaniaPoćwicz samodzielnie: Kompilator Go online