Sobes.tech
Junior — Middle

Quali sono i principali segni che permettono di determinare la causa dell'errore 500 sul server?

sobes.tech AI

Risposta dell'AI

Errore 500 (Internal Server Error) indica un problema lato server. I principali segnali per determinare la causa:

  • Log del server: esaminare i log (ad esempio, con il pacchetto log in Go) mostra spesso lo stack di chiamate e il punto esatto dell'errore.
  • Panic in Go: un panic non gestito porta a un errore 500. Verificare il codice per eventuali panics e la loro gestione tramite recover aiuta a identificare la causa.
  • Errori negli handler HTTP: gestione errata dei dati, puntatori nil, errori nel lavoro con il database.
  • Configurazione errata del server o delle dipendenze.

Esempio di gestione del panic in Go:

func handler(w http.ResponseWriter, r *http.Request) {
    defer func() {
        if err := recover(); err != nil {
            http.Error(w, "Errore Interno del Server", http.StatusInternalServerError)
            // log dell'errore
        }
    }()
    // codice principale dell'handler
}