
Obsługa błędów
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
1Jaki interfejs jest używany do reprezentowania błędów w Go?
Jaki interfejs jest używany do reprezentowania błędów w Go?
Odpowiedź
Interfejs error to predefiniowany interfejs w Go służący do reprezentowania stanów błędu. Zawiera jedną metodę Error(), która zwraca ciąg znaków opisujący błąd. Wartość nil oznacza brak błędu. Jest to konwencjonalny interfejs używany przez wszystkie pakiety biblioteki standardowej oraz przez programistów Go do sygnalizowania i propagowania błędów.
2Jak utworzyć prosty błąd ze statyczną wiadomością w Go?
Jak utworzyć prosty błąd ze statyczną wiadomością w Go?
Odpowiedź
Funkcja errors.New() z pakietu errors tworzy prosty błąd ze statyczną wiadomością. Zwraca typ error, który implementuje interfejs error z podaną wiadomością. To podejście jest zalecane do tworzenia błędów sentinel (predefiniowanych błędów takich jak os.ErrNotExist) lub prostych błędów bez dynamicznego kontekstu. Dla dynamicznych wiadomości należy użyć fmt.Errorf().
3Która funkcja pozwala utworzyć błąd z dynamicznie sformatowaną wiadomością?
Która funkcja pozwala utworzyć błąd z dynamicznie sformatowaną wiadomością?
Odpowiedź
Funkcja fmt.Errorf() tworzy błąd z dynamicznie sformatowaną wiadomością przy użyciu czasowników formatujących (takich jak %s, %d, %v). Obsługuje również specjalny czasownik %w do opakowania istniejącego błędu, zachowując w ten sposób łańcuch błędów do późniejszej inspekcji. Jest to zalecana metoda dodawania kontekstu do błędów przy zachowaniu oryginalnego błędu.
Który czasownik formatujący pozwala opakować błąd za pomocą fmt.Errorf()?
Która funkcja sprawdza, czy opakowany błąd odpowiada określonemu błędowi?
+17 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Podstawy goroutines
Channels
Go Modules
Serwer HTTP
Klient HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
gRPC
Reflection
Zarządzanie pamięcią
Optymalizacja wydajności
Generics
Go Design Patterns
Microservices
Bezpieczeństwo i uwierzytelnianie
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
Opanuj Go na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo