
Gestione degli errori
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
1Qual è l'interfaccia utilizzata per rappresentare gli errori in Go?
Qual è l'interfaccia utilizzata per rappresentare gli errori in Go?
Risposta
L'interfaccia error è l'interfaccia predefinita in Go per rappresentare le condizioni di errore. Contiene un unico metodo Error() che restituisce una stringa che descrive l'errore. Il valore nil rappresenta l'assenza di errore. È l'interfaccia convenzionale utilizzata da tutti i pacchetti della libreria standard e dagli sviluppatori Go per segnalare e propagare gli errori.
2Come creare un errore semplice con un messaggio statico in Go?
Come creare un errore semplice con un messaggio statico in Go?
Risposta
La funzione errors.New() del pacchetto errors crea un errore semplice con un messaggio statico. Restituisce un tipo error che implementa l'interfaccia error con il messaggio fornito. Questo approccio è consigliato per creare errori sentinel (errori predefiniti come os.ErrNotExist) o errori semplici senza contesto dinamico. Per messaggi dinamici, usare fmt.Errorf().
3Quale funzione permette di creare un errore con un messaggio formattato dinamicamente?
Quale funzione permette di creare un errore con un messaggio formattato dinamicamente?
Risposta
La funzione fmt.Errorf() crea un errore con un messaggio formattato dinamicamente utilizzando i verbi di formattazione (come %s, %d, %v). Supporta anche il verbo speciale %w per avvolgere un errore esistente, preservando così la catena di errori per un'ispezione successiva. È il metodo consigliato per aggiungere contesto agli errori mantenendo l'errore originale.
Quale verbo di formattazione permette di avvolgere un errore con fmt.Errorf()?
Quale funzione verifica se un errore avvolto corrisponde a un errore specifico?
+17 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Go Design Patterns
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis