为了账号安全,请及时绑定邮箱和手机立即绑定

内存错误,Go 中的 html/模板

内存错误,Go 中的 html/模板

Go
慕的地8271018 2021-09-27 10:55:41
尝试执行此代码时出现一些内存错误:package webimport (    "net/http"    "html/template")type Hello struct {    Level string}func Main(w http.ResponseWriter, r *http.Request) {    h := Hello{Level: "gsdfg"}    t, _ := template.ParseFiles("web.html")    t.Execute(w, h)}我在浏览器中得到的错误信息是这样的:the runtime process gave a bad HTTP response: ''2015/03/26 11:34:56 http: panic serving 127.0.0.1:43269: runtime error: invalid memory address or nil pointer dereference我不明白我做错了什么......
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

template.ParseFiles返回错误


func ParseFiles(filenames ...string) (*Template, error)

如果发生错误,则解析停止并返回*Templatenil。


如果出现问题,您应该检查错误。

这可以解释为什么 ' t' 可能为零。


一般来说,最好的做法是永远不要忽略错误。


这里:


var t *Template

if t, err := template.ParseFiles("web.html"); err != nil {

    // do something

    // return err

    // or

    // panic(err)

}


查看完整回答
反对 回复 2021-09-27
?
慕仙森

TA贡献1827条经验 获得超8个赞

另一种解决方案是使用template.Must函数在出现错误时引起恐慌。在这种情况下,它的使用是合理的,因为程序需要它的资源。

t := template.Must(template.ParseFiles("web.html"))


查看完整回答
反对 回复 2021-09-27
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信