1.web.go里的error可以去掉,因为handler里面已经实现了error的方法
func (e UserError) Error() string {
return e.Message()
}
2.userError(xxxxx)这一句应该并没有调用Error(), userError其实是个字符串,这里userError(xxxx)应该相当于string(xxxxx), 然后返回了这个字符串对象,又因为它实现了上面的函数,也就是Error接口的函数,所以就算handler的返回是Error,这个字符串也能返回