2012-07-23 54 views
7

我是新來golang,目前這裏按照本教程和源代碼 - http://golang.org/doc/articles/wiki/part2.gogolang:運行時錯誤:無效的內存地址或零指針引用

建立這個文件後,我得到

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 

任何想法我做錯了會導致這種明顯的內存腐敗?

+0

如果所請求的文件不存在(沒有錯誤處理),也可能發生此錯誤。對於我,我忘了創建test.txt文件。 – earth2jason 2016-10-15 03:06:33

回答

14

有在36行被忽略ERR該錯誤可能說open .txt: no such file or directory如果使用URL http://localhost:8080/view/open foo.txt: no such file or directory在瀏覽器中測試,如果你使用URL​​在瀏覽器中進行測試。在後面的例子中,在你的工作目錄中必須有一個文件「foo.txt」,這個例子代碼才能工作。之後,代碼似乎在我的本地工作。

有人應該填寫有關被忽略的錯誤值的問題。

+1

是。在和一些人一起去瘋狂的irc頻道聊天后,我意識到自己愚蠢的錯誤。謝謝! – 2012-07-23 14:14:04

+2

'fmt.Fprintf'也在下一行有一個被忽略的錯誤 – 2012-07-23 18:22:59

0

在本教程中,您先前創建了文件TestPage。當您第一次構建服務器時,您應該瀏覽哪個頁面。在本教程中,他們讓您導航到view/test而不是view/TestPage,因爲這是造成混淆的原因。

相關問題