2012-07-23 13 views
7

Sono nuovo di golang e attualmente seguendo questo codice di tutorial e fonte qui - http://golang.org/doc/articles/wiki/part2.gogolang: errore di runtime: indirizzo di memoria non valida o un puntatore nullo dereference

Dopo aver costruito questo file, sto ottenendo

calvin$ ./mywebwiki2 
2012/07/23 17:12:59 http: panic serving [::1]:58820: runtime error: invalid memory address or nil pointer dereference 
/usr/local/go/src/pkg/net/http/server.go:576 (0x3f202) 
    _func_003: buf.Write(debug.Stack()) 
/private/tmp/bindist454984655/go/src/pkg/runtime/proc.c:1443 (0x10c79) 
/private/tmp/bindist454984655/go/src/pkg/runtime/runtime.c:128 (0x11745) 
/private/tmp/bindist454984655/go/src/pkg/runtime/thread_darwin.c:418 (0x148b5) 
/Users/calvin/work/gowiki/mywebwiki2.go:33 (0x2248) 
    viewHandler: fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body) 
/usr/local/go/src/pkg/net/http/server.go:690 (0x331ae) 
    HandlerFunc.ServeHTTP: f(w, r) 
/usr/local/go/src/pkg/net/http/server.go:926 (0x34030) 
    (*ServeMux).ServeHTTP: mux.handler(r).ServeHTTP(w, r) 
/usr/local/go/src/pkg/net/http/server.go:656 (0x32fc1) 
    (*conn).serve: handler.ServeHTTP(w, w.req) 
/private/tmp/bindist454984655/go/src/pkg/runtime/proc.c:271 (0xed7f) 
2012/07/23 17:12:59 http: panic serving [::1]:58821: runtime error: invalid memory address or nil pointer dereference 

Qualche idea su cosa ho fatto di sbagliato per causare questa apparente corruzione della memoria?

+0

Questo errore può verificarsi anche se il file richiesto non è presente (senza gestione degli errori). Per me ho dimenticato di creare il file test.txt. – earth2jason

risposta

14

C'è un err ignorato alla linea 36. L'errore probabilmente dice open .txt: no such file or directory se avete provato nel browser utilizzando URL http://localhost:8080/view/ o open foo.txt: no such file or directory se avete provato nel browser utilizzando URL http://localhost:8080/view/foo. Nel caso successivo ci deve essere un file "foo.txt" nella directory di lavoro per far funzionare questo codice di esempio. Dopo che il codice sembra funzionare per me localmente.

Qualcuno dovrebbe probabilmente riempire un problema relativo al valore dell'errore ignorato.

+1

sì. ho realizzato il mio stupido errore dopo aver chiacchierato con qualcuno sul canale irc. Grazie! –

+2

C'è anche un errore ignorato sulla riga successiva da 'fmt.Fprintf' –

0

Nel tutorial, è stato creato il file TestPage in precedenza. Qual è la pagina alla quale dovresti navigare quando crei il server per la prima volta. Nel tutorial, è possibile navigare fino a view/test invece di view/TestPage come si dovrebbe, che è ciò che crea la confusione.

Problemi correlati