Go错误排查Tips
runtime error: invalid memory address or nil pointer dereference
/usr/lib/golang/src/runtime/panic.go:199 (0x44648b)
	panicmem: panic(memoryError)
/usr/lib/golang/src/runtime/signal_unix.go:394 (0x4462c8)
	sigpanic: panicmem()
/home/wxg/idc_bandwidth_bill/handler/idcbandwidth/getbandwidth.go:95 (0xaf08c6)
	GetBandwidth: data, err := influxdb.GetIDCBandwidth(influxIns, influxClient,

Go项目报上述错误, 并不能说明错误就一定出在getbandwidth.go文件的第95行, 也可能出现在这条语句的后面的任何一条语句. 一定不能仅盯着这行代码反复找原因, 白白浪费时间.

此案例中, 出现这个错误的原因是后面的语句中有一条:

if err.Error() == "somestring" {}

由于errnil, 所以报错, 应该改为:

if err != nil && err.Error() == "somestring" {}