2012-07-23 31 views
7

Tôi mới vào golang và hiện đang làm theo hướng dẫn và mã nguồn này đây - http://golang.org/doc/articles/wiki/part2.gogolang: lỗi runtime: Địa chỉ bộ nhớ không hợp lệ hoặc con trỏ nil dereference

Sau khi xây dựng tập tin này, tôi nhận được

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 

Bất kỳ ý tưởng những gì tôi đã làm sai để gây ra tham nhũng bộ nhớ rõ ràng này?

+0

Lỗi này cũng có thể xảy ra nếu tệp được yêu cầu không có (không xử lý lỗi). Đối với tôi, tôi quên tạo tệp test.txt. – earth2jason

Trả lời

14

Có lỗi bị bỏ qua ở dòng 36. Lỗi có thể là open .txt: no such file or directory nếu bạn đã thử nghiệm trong trình duyệt sử dụng URL http://localhost:8080/view/ hoặc open foo.txt: no such file or directory nếu bạn thử nghiệm trong trình duyệt bằng URL http://localhost:8080/view/foo. Trong trường hợp sau đó, phải có tệp "foo.txt" trong thư mục làm việc của bạn để mã ví dụ này hoạt động. Sau đó mã có vẻ làm việc cho tôi cục bộ.

Ai đó có lẽ nên điền vào một vấn đề về giá trị lỗi bị bỏ qua.

+1

yup. nhận ra sai lầm ngớ ngẩn của tôi sau khi trò chuyện với một số người trên kênh irc. cảm ơn! –

+2

Có lỗi bị bỏ qua trên dòng tiếp theo quá từ 'fmt.Fprintf' –

0

Trong hướng dẫn, bạn đã tạo tệp TestPage trước đó. Đó là trang bạn nên điều hướng đến khi bạn xây dựng máy chủ lần đầu tiên. Trong hướng dẫn, họ có bạn điều hướng đến view/test thay vì view/TestPage như bạn nên tạo ra sự nhầm lẫn.

Các vấn đề liên quan