Junior — Middle
Quais são os principais sinais que permitem determinar a causa do erro 500 no servidor?
sobes.tech IA
Resposta da IA
Erro 500 (Erro Interno do Servidor) indica um problema do lado do servidor. Os principais sinais para determinar a causa:
- Registos do servidor: verificar os registos (por exemplo, usando o pacote
logem Go) geralmente mostra a pilha de chamadas e o local exato do erro. - Pânico (panic) em Go: um pânico não tratado leva a um erro 500. Verificar o código em busca de possíveis pânicos e sua gestão através de
recoverajuda a identificar a causa. - Erros nos manipuladores HTTP: gestão incorreta de dados, ponteiros nil, erros ao trabalhar com bases de dados.
- Configuração incorreta do servidor ou dependências.
Exemplo de gestão de pânico em Go:
func handler(w http.ResponseWriter, r *http.Request) {
defer func() {
if err := recover(); err != nil {
http.Error(w, "Erro Interno do Servidor", http.StatusInternalServerError)
// registar err
}
}()
// código principal do manipulador
}