猿问

去 http 恐慌服务

我得到了这种恐慌:


C:\Users\loow\Desktop\USBWebserver v8.5\duplicate_submissions>go run server.go

2015/10/23 13:00:39 http: panic serving [::1]:63867: runtime error: invalid memo

ry address or nil pointer dereference

goroutine 5 [running]:

net/http.(*conn).serve.func1(0xc0820a1810, 0x3b55b8, 0xc082024040)

        c:/go/src/net/http/server.go:1287 +0xbc

main.login(0x2990058, 0xc0820d4000, 0xc0820be1c0)

        C:/Users/loow/Desktop/USBWebserver v8.5/duplicate_submissions/server.go:

27 +0x5a5

net/http.HandlerFunc.ServeHTTP(0x8326a8, 0x2990058, 0xc0820d4000, 0xc0820be1c0)

        c:/go/src/net/http/server.go:1422 +0x41

net/http.(*ServeMux).ServeHTTP(0xc082062360, 0x2990058, 0xc0820d4000, 0xc0820be1

c0)

        c:/go/src/net/http/server.go:1699 +0x184

net/http.serverHandler.ServeHTTP(0xc08200c360, 0x2990058, 0xc0820d4000, 0xc0820b

e1c0)

        c:/go/src/net/http/server.go:1862 +0x1a5

net/http.(*conn).serve(0xc0820a1810)

        c:/go/src/net/http/server.go:1361 +0xbf5

created by net/http.(*Server).Serve

        c:/go/src/net/http/server.go:1910 +0x3fd

2015/10/23 13:00:39 http: panic serving [::1]:63868: runtime error: invalid memo

ry address or nil pointer dereference

goroutine 33 [running]:

net/http.(*conn).serve.func1(0xc082114000, 0x3b55b8, 0xc082112000)

        c:/go/src/net/http/server.go:1287 +0xbc

main.login(0x2990058, 0xc0821140b0, 0xc0821200e0)

        C:/Users/loow/Desktop/USBWebserver v8.5/duplicate_submissions/server.go:

27 +0x5a5

net/http.HandlerFunc.ServeHTTP(0x8326a8, 0x2990058, 0xc0821140b0, 0xc0821200e0)

        c:/go/src/net/http/server.go:1422 +0x41

net/http.(*ServeMux).ServeHTTP(0xc082062360, 0x2990058, 0xc0821140b0, 0xc0821200

e0)

        c:/go/src/net/http/server.go:1699 +0x184

net/http.serverHandler.ServeHTTP(0xc08200c360, 0x2990058, 0xc0821140b0, 0xc08212

00e0)

        c:/go/src/net/http/server.go:1862 +0x1a5

net/http.(*conn).serve(0xc082114000)

        c:/go/src/net/http/server.go:1361 +0xbf5

created by net/http.(*Server).Serve

        c:/go/src/net/http/server.go:1910 +0x3fd

exit status 2


吃鸡游戏
浏览 234回答 1
1回答

料青山看我应如是

恐慌堆栈跟踪为您提供以下信息:2015/10/23 13:00:39 http: panic serving [::1]:63868: runtime error: invalid memory address or nil pointer dereference goroutine 33 [running]:这意味着您正在尝试访问不存在的内容(空指针)。然后来自您的文件的第一行是这样的:v8.5/duplicate_submissions/server.go:27那里有:26: t, err := template.ParseFiles("templates/index.gtpl")27: fmt.Println(err.Error())28: err = t.Execute(w, token)这意味着 err 为零。解决方案如果出现错误,则无法继续该过程。这就是为什么你不能只打印出错误的原因。为了优雅地停止该过程,您需要返回一个 HTTP 状态代码然后返回。对于上述情况,您可以返回代码 500(内部服务器错误)。t, err := template.ParseFiles("templates/index.gtpl")if err != nil {  fmt.Println(err) // Ugly debug output  w.WriteHeader(http.StatusInternalServerError) // Proper HTTP response  return}对于template.ParseFiles和t.Execute也必须这样做。顺便说一句,这被称为“逗号确定”模式
随时随地看视频慕课网APP

相关分类

Go
我要回答