Junior — Middle
Jakie główne cechy pozwalają określić przyczynę błędu 500 na serwerze?
sobes.tech AI
Odpowiedź od AI
Błąd 500 (Internal Server Error) wskazuje na problem po stronie serwera. Główne oznaki do określenia przyczyny:
- Logi serwera: przeglądanie logów (np. za pomocą pakietu
logw Go) często pokazuje stos wywołań i dokładne miejsce błędu. - Panic w Go: nieobsłużony panic prowadzi do błędu 500. Sprawdzenie kodu pod kątem możliwych paniców i ich obsługi przez
recoverpomaga zidentyfikować przyczynę. - Błędy w obsłudze HTTP: nieprawidłowe zarządzanie danymi, wskaźniki nil, błędy przy pracy z bazą danych.
- Nieprawidłowa konfiguracja serwera lub zależności.
Przykład obsługi panic w Go:
func handler(w http.ResponseWriter, r *http.Request) {
defer func() {
if err := recover(); err != nil {
http.Error(w, "Błąd wewnętrzny serwera", http.StatusInternalServerError)
// logowanie błędu
}
}()
// główny kod obsługi
}