Sobes.tech
Junior — Middle
107

Какие основные признаки позволяют определить причину возникновения ошибки 500 на сервере?

AI-дан жауап

sobes.tech AI

Ошибка 500 (Internal Server Error) указывает на проблему на стороне сервера. Основные признаки для определения причины:

  • Логи сервера: изучение логов (например, с помощью log пакета в Go) часто показывает стек вызовов и конкретное место ошибки.
  • Паника (panic) в Go: необработанная паника приводит к 500 ошибке. Проверка кода на наличие возможных паник и их обработка через recover помогает выявить причину.
  • Ошибки в обработчиках HTTP: неправильная работа с данными, nil-указатели, ошибки при работе с базой данных.
  • Неправильная конфигурация сервера или зависимостей.

Пример обработки паники в Go:

func handler(w http.ResponseWriter, r *http.Request) {
    defer func() {
        if err := recover(); err != nil {
            http.Error(w, "Internal Server Error", http.StatusInternalServerError)
            // логируем err
        }
    }()
    // основной код обработчика
}