当前位置: 首页 > 知识库问答 >
问题:

golang:运行时错误:无效内存地址或零指针取消引用

公冶和豫
2023-03-14

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

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

共有2个答案

越运锋
2023-03-14

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

郑正阳
2023-03-14

第36行有一个被忽略的错误。错误可能是open. txt:没有这样的文件或目录,如果您在浏览器中使用URLhttp://localhost:8080/view/openfoo.txt:没有这样的文件或目录,如果您在浏览器中使用URLhttp://localhost:8080/view/foo进行测试。在后面的情况下,您的工作目录中必须有一个文件“foo.txt”才能使此示例代码工作。之后,代码似乎在本地对我有效。

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

 类似资料:
  • 我是新手,试图制作一个简单的网络爬虫。我一直收到“恐慌:运行时错误:无效的内存地址或零指针取消引用”,不知道如何解决这个问题。我有一个“AdvancedFetcher”函数和一个“basicFetcher”函数,我在其中任何一个下都收到相同的错误。这个答案建议检查每个错误(我想我有),但我仍然收到错误。谢谢! 编辑#1:

  • 运行Go程序时,它会惊慌失措并返回以下信息: 我查看了其他人对相同异常的响应,但没有看到任何简单的响应(即未处理的错误)。 我在一台无法访问代码中列出的API服务器的机器上运行它,但我希望它会返回一个适当的错误(因为我试图捕捉这种错误)。

  • 我正在尝试实现简单的grpc服务器和客户端模型,只使用服务器端流的方法。我正在参考Official repo中的路线指南示例。尝试运行时,我从服务器端收到此错误 这是客户端的 服务器去 一些原型文件 我正在研究堆栈溢出中关于零指针错误的几个问题,我发现这段代码是罪魁祸首 我不知道如何解决这个问题,我怀疑我实施它的方式是错误的。任何帮助都将是巨大的。谢谢

  • 我是gccgo新手,我需要编译/运行以下代码的帮助(这在“标准”go编译器中可以正常工作(抱歉,我不知道正确的名称)): 我的gcc: 我的第一个文件: 我的第二个文件: 我的编译错误: 我做错了什么?

  • 问题内容: 我是新手,尝试制作一个简单的网络爬虫。我不断收到“紧急情况:运行时错误:无效的内存地址或nil指针取消引用”,并且不知道如何解决该问题。我有一个“ advancedFetcher”功能和一个“basicFetcher”功能,在任何一个下都出现相同的错误。这个答案建议检查每个错误(我认为是错误),但仍然出现错误。谢谢! 编辑#1: 问题答案: 您的程序在惊慌之前打印错误吗?如果没有记错,

  • 我收到一个无效内存地址的运行时错误。 channel.go看起来像这样: 第36行怎么可能导致这种情况?m是否有可能为零?如果是,如何? 注意:哈希定义为字符串