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
}
}()
// основной код обработчика
}