我是golang的新手,目前正在关注本教程和源代码 - http://golang.org/doc/articles/wiki/part2.go
构建此文件后,我正在
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 :(得分:15)
第36行有一个被忽略的错误。如果您使用网址open .txt: no such file or directory
或http://localhost:8080/view/
在浏览器中使用网址open foo.txt: no such file or directory
进行测试,则错误可能会显示为http://localhost:8080/view/foo
。在后一种情况下,工作目录中必须有一个文件“foo.txt”才能使此示例代码生效。之后,代码似乎在本地适用于我。
有人应该填写有关忽略的错误值的问题。
答案 1 :(得分:1)
在本教程中,您之前创建了文件TestPage。您首次构建服务器时应该导航到的页面。在本教程中,您可以导航到view/test
而不是view/TestPage
,这就是造成混淆的原因。