【问题标题】:golang: runtime error: invalid memory address or nil pointer dereferencegolang:运行时错误:无效的内存地址或 nil 指针取消引用
【发布时间】:2012-07-21 12:21:21
【问题描述】:

我是 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

知道我做错了什么导致这种明显的内存损坏吗?

【问题讨论】:

  • 如果请求的文件不存在(没有错误处理),也可能发生此错误。对我来说,我忘了创建 test.txt 文件。

标签: go


【解决方案1】:

第 36 行有一个被忽略的错误。如果您在浏览器中使用 URL http://localhost:8080/view/ 进行测试,则错误可能显示为 open .txt: no such file or directory;如果您在浏览器中使用 URL http://localhost:8080/view/foo 进行测试,则错误可能为 open foo.txt: no such file or directory。在后一种情况下,您的工作目录中必须有一个文件“foo.txt”,此示例代码才能工作。之后,代码似乎在本地对我有用。

可能有人应该填写关于忽略的错误值的问题。

【讨论】:

  • 是的。在与 go-nuts irc 频道上的某个人聊天后意识到我的愚蠢错误。谢谢!
  • fmt.Fprintf的下一行也有一个被忽略的错误
【解决方案2】:

在本教程中,您之前创建了文件 TestPage。首次构建服务器时应该导航到哪个页面。在本教程中,他们让您导航到 view/test 而不是 view/TestPage,这是造成混乱的原因。

【讨论】:

    猜你喜欢
    • 2015-02-24
    • 2022-01-05
    • 2017-02-07
    • 2014-12-30
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多