Sobes.tech
Junior — Middle

Care sunt principalele caracteristici care permit identificarea cauzei erorii 500 pe server?

sobes.tech AI

Răspuns de la AI

Eroarea 500 (Eroare Internă a Serverului) indică o problemă pe partea serverului. Principalele semne pentru determinarea cauzei:

  • Jurnalele serverului: examinarea jurnalelor (de exemplu, cu pachetul log în Go) arată adesea stiva de apeluri și locația exactă a erorii.
  • Panic în Go: un panic necontrolat duce la o eroare 500. Verificarea codului pentru posibile panic și gestionarea acestora cu recover ajută la identificarea cauzei.
  • Erori în handler-ele HTTP: gestionare incorectă a datelor, pointeri nil, erori la lucrul cu baza de date.
  • Configurarea incorectă a serverului sau dependențelor.

Exemplu de gestionare a panic-ului în Go:

func handler(w http.ResponseWriter, r *http.Request) {
    defer func() {
        if err := recover(); err != nil {
            http.Error(w, "Eroare Internă a Serverului", http.StatusInternalServerError)
            // logarea erorii
        }
    }()
    // codul principal al handler-ului
}