
Foutafhandeling
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
1Welke interface wordt gebruikt om fouten in Go te representeren?
Welke interface wordt gebruikt om fouten in Go te representeren?
Antwoord
De error-interface is de voorgedefinieerde interface in Go om fouttoestanden te representeren. Ze bevat één enkele Error()-methode die een string teruggeeft die de fout beschrijft. De waarde nil staat voor geen fout. Dit is de conventionele interface die door alle pakketten van de standaardbibliotheek en door Go-ontwikkelaars wordt gebruikt om fouten te signaleren en door te geven.
2Hoe maak je een eenvoudige fout met een statische boodschap in Go?
Hoe maak je een eenvoudige fout met een statische boodschap in Go?
Antwoord
De functie errors.New() uit het pakket errors maakt een eenvoudige fout met een statische boodschap. Ze geeft een error-type terug dat de error-interface implementeert met de opgegeven boodschap. Deze aanpak wordt aanbevolen voor het maken van sentinel-fouten (voorgedefinieerde fouten zoals os.ErrNotExist) of eenvoudige fouten zonder dynamische context. Voor dynamische boodschappen gebruik je fmt.Errorf().
3Welke functie maakt het mogelijk een fout met een dynamisch geformatteerde boodschap te maken?
Welke functie maakt het mogelijk een fout met een dynamisch geformatteerde boodschap te maken?
Antwoord
De functie fmt.Errorf() maakt een fout met een dynamisch geformatteerde boodschap met behulp van formatteringswerkwoorden (zoals %s, %d, %v). Ze ondersteunt ook het speciale werkwoord %w om een bestaande fout te wrappen, waardoor de foutketen behouden blijft voor latere inspectie. Dit is de aanbevolen methode om context aan fouten toe te voegen terwijl de oorspronkelijke fout behouden blijft.
Welk formatteringswerkwoord maakt het mogelijk een fout te wrappen met fmt.Errorf()?
Welke functie controleert of een gewrapte fout overeenkomt met een specifieke fout?
+17 gespreksvragen
Andere Go-sollicitatieonderwerpen
Go-basis
Go-datastructuren
Go-interfaces
Goroutines-basis
Channels
Go Modules
HTTP-server
HTTP-client
JSON-codering
Database/SQL
context-pakket
Testing
Concurrency-patronen
Synchronisatieprimitieven
Go-webframeworks
REST API-ontwerp
gRPC
Reflection
Geheugenbeheer
Prestatie-optimalisatie
Generics
Go Design Patterns
Microservices
Beveiliging en authenticatie
Docker & Containerization
Kubernetes Basics
Geavanceerd Go
CLI-ontwikkeling
Beheers Go voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis