首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  编程

golang 里面是如何处理错误的

  •  
  •   hyq · 2012-10-27 16:56:04 +08:00 · 5632 次点击
    这是一个创建于 2518 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设有如下代码

    请问如何确定出错的原因?我看文档里面对这部分介绍得很少啊
    14 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    wayn3h0   2012-10-27 17:02:16 +08:00
    error类型可返回具体信息
        2
    tioover   2012-10-27 17:04:50 +08:00
    Go设计者觉得异常处理是邪道,所以只能用传统方法
        3
    hyq   2012-10-27 17:15:48 +08:00
    @wayn3h0 我看了文档,又读了源码,总觉得返回的信息不完全,还不如C语言的Socket api好用。
        4
    hyq   2012-10-27 17:17:18 +08:00
    @tioover
    @wayn3h0
    实际上我也知道在golang里面是可以获取到错误信息的,但是在调用golang库函数的时候,它到底返回的是个什么错误,文档里面却没说明白
        5
    wayn3h0   2012-10-27 18:19:28 +08:00
    @hyq 你可以判断具体Error类型,错误类型都是实现Error接口的 如果文档没有说明,进代码看看就行了
        6
    hyq   2012-10-29 12:00:55 +08:00
    @wayn3h0 看了一下代码,还是一片模糊,很多问题都不知道怎么解决,比如net.Dial连接服务器失败,根本不知道是因为网络问题,还是服务器没开放端口。不过只要它不崩溃就行了,可能是因为golang还不成熟吧,将就着用用
        7
    dndx   2012-10-29 13:02:53 +08:00
    @tioover 没错,Go的设计者之一是C语言之父Ken Thompson(就是K&R里的K),所以这么做就不难理解了。
        8
    wayn3h0   2012-10-29 13:36:48 +08:00
    @hyq please check dial.go & net.go src file

    DNSConfigError AddrError UnknowNetworkError will be returned in error, and you can check timeout error or temporary error by Timerout() & Temporary() method(s)...
        9
    hyq   2012-10-29 13:40:11 +08:00
    @wayn3h0 好吧,这个我也看到了,不过我还是想抱怨下,为什么不像java一样,把会返回的异常类型给列出来。文档里面都找不到
        10
    wayn3h0   2012-10-29 13:45:51 +08:00   ♥ 1
    好吧,又误点"感谢"

    @hyq 引入异常机制和go的设计理念冲突
    再说返回 Error接口和异常有什么不同?
        11
    wayn3h0   2012-10-29 13:47:00 +08:00
    @hyq golang最大的不足在文档
        12
    hyq   2012-10-29 13:48:37 +08:00
    @wayn3h0 我不是说他有问题,而是说文档里面为什么没说明会返回什么错误,这样造成了极大的不便
        13
    Alex_L   2012-10-29 16:14:44 +08:00
    @dndx K&R里的K是Kernighan不是Ken
        14
    clowwindy   2012-10-29 16:35:38 +08:00
    go 的文档是 python 风格的,要弄清楚不明确的地方,需要看源码
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3292 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 05:30 · PVG 13:30 · LAX 22:30 · JFK 01:30
    ♥ Do have faith in what you're doing.