ECM
ECM
总版主
总版主
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:1551亚博国际平台老虎机官网:0

Go的error返回值相关的坑

楼主#
更多 发布于:2016-01-07 13:44
http://play.golang.org/p/GSn5_I2Qqs


package main


import "log"


type MyError struct{}


func (err *MyError) Error() string {
?? ?return "MyError"
}


func Foo() (err *MyError) {
?? ?return
}


func main() {
?? ?var err error
?? ?if err = Foo(); err != nil {
?? ? ? ?log.Fatal(err) // BUG
?? ?}
}
原因请看这个文章: http://my.oschina.net/chai2010/blog/117923


临时建议:
如果是返回自己的Error类型, 绝对不要让这个类型符合error接口的定义.
这样可以避免接口的隐式转型.

?

?

?

?

?

?

?

异常中心网是一家专门收集整理程序员编程过程中遇到的常见异常(exception)以及各种异常问答中心的网站。异常中心网旨在,减少程序员在编码遇到异常,处理各种异常时间和痛苦,让程序员能更愉快的、快速的定位异常并查找对应的异常解决方案。异常中心网诚心打造最完美的编程社区为程序员用户服务,努力成为最好的程序员乐园程序员社区程序异常中心程序bug中心异常问答中心

?

喜欢0 评分0
游客

返回顶部