Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Index não carrega (ERR_EMPTY_RESPONSE) e erro "runtime error: invalid memory address or nil pointer dereference"

Seguindo o tutorial, exceto que estou usando o mysql no lugar de postgres, esse erro apareceu do nada.

Quando eu acesso o localhost ele da o erro ERR_EMPTY_RESPONSE e no terminal aparece o seguinte:

http: panic serving 127.0.0.1:59302: runtime error: invalid memory address or nil pointer dereference
goroutine 20 [running]:
net/http.(*conn).serve.func1()
        C:/Program Files/Go/src/net/http/server.go:1825 +0xbf
panic({0x6009c0, 0x8b14d0})
        C:/Program Files/Go/src/runtime/panic.go:844 +0x258
database/sql.(*Rows).Next(0x0)
        C:/Program Files/Go/src/database/sql/sql.go:2985 +0x27
github.com/projetoweb/models.BuscaProdutos()
        C:/Users/mayco/go/src/github.com/projetoweb/models/produto.go:25 +0xec
github.com/projetoweb/controllers.Index({0x6dc8e0?, 0xc0000ba000}, 0x0?)
        C:/Users/mayco/go/src/github.com/projetoweb/controllers/produtos.go:14 +0x28
net/http.HandlerFunc.ServeHTTP(0x15ab74c4dd8?, {0x6dc8e0?, 0xc0000ba000?}, 0x2fd805?)
        C:/Program Files/Go/src/net/http/server.go:2084 +0x2f
net/http.(*ServeMux).ServeHTTP(0x0?, {0x6dc8e0, 0xc0000ba000}, 0xc0000a8000)
        C:/Program Files/Go/src/net/http/server.go:2462 +0x149
net/http.serverHandler.ServeHTTP({0xc0000880f0?}, {0x6dc8e0, 0xc0000ba000}, 0xc0000a8000)
        C:/Program Files/Go/src/net/http/server.go:2916 +0x43b
net/http.(*conn).serve(0xc00022a000, {0x6dca78, 0xc0002023f0})
        C:/Program Files/Go/src/net/http/server.go:1966 +0x5d7
created by net/http.(*Server).Serve
        C:/Program Files/Go/src/net/http/server.go:3071 +0x4db
exit status 0xc000013a

ja tentei de tudo mas não encontro qual pode ser o problema.

Estou usando VScode no windows.

1 resposta
solução!

Eu resolvi o problema. Sem querer eu tinha adicionado um caracter na string de conexão do banco de dados. Era esse ponteiro que tava dando nil. Mas o problema real que estava me impedindo de achar o problema era que mesmo eu tratando o erro ele não estava interrompendo a execução com o panic(). Isso eu ainda não entendo o porque de estar acontecendo.