Sobes.tech
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 log em 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 recover ajuda 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
}