V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
flytwokites
V2EX  ›  Go 编程语言

关于go没有异常处理实际用起来会不舒服吗?

  •  
  •   flytwokites · 2012-11-17 10:34:13 +08:00 · 3605 次点击
    这是一个创建于 4387 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://www.infoq.com/cn/news/2012/11/go-error-handle
    http://uberpython.wordpress.com/2012/09/23/why-im-not-leaving-python-for-go/

    因为没异常所以一直没有要试试go的想法。Go作者那个回复没说到点上。

    以前用java时候最烦那个checked exception,看上去go这个做法也有类似效果。
    11 条回复    1970-01-01 08:00:00 +08:00
    Muninn
        1
    Muninn  
       2012-11-17 10:39:39 +08:00
    写c的或许能习惯点。。。
    可能我功力不够,最近也在思索那篇作者的解释有没有道理。
    skydark
        2
    skydark  
       2012-11-17 13:08:47 +08:00
    http://www.yosefk.com/blog/error-codes-vs-exceptions-critical-code-vs-typical-code.html
    我更赞同这篇文章的观点。
    简单地说,是人都会犯错。在一般情况下,用异常会很偷懒很省事。在很严肃的场合,用错误码更容易保证考虑周全。总之和应用领域有关。
    reus
        3
    reus  
       2012-11-17 13:54:30 +08:00
    习惯就好了
    VYSE
        4
    VYSE  
       2012-11-17 17:28:00 +08:00
    处理一个函数失败的正常逻辑是在函数结束后看其结果,而不是事先声明一个捕捉异常的环境,作为C程序员觉得事后GetLastError/errno + break/return/goto更适合演绎一段代码实际执行流程
    myrual
        5
    myrual  
       2012-11-18 14:19:36 +08:00
    我很少用异常,更喜欢线性的逻辑,当业务出错的时候,线性逻辑更加容易debug
    guotie
        6
    guotie  
       2012-11-18 14:54:43 +08:00
    个人认为,c/go的处理方式更好
    picasso250
        7
    picasso250  
       2012-11-18 19:04:49 +08:00
    为啥go允许返回多个值?
    hyq
        8
    hyq  
       2012-11-18 19:28:41 +08:00
    用着就好,管它呢
    BigZ
        9
    BigZ  
       2012-11-19 14:21:25 +08:00
    exception很有用,能有效的改善代码结构

    用c写过复制功能的同学,就应该知道,有些时候用goto 非常合适
    exception 相当于慢速版的goto,还能简化函数返回值的设计
    reus
        10
    reus  
       2012-11-19 14:44:48 +08:00
    go也可以用goto
    dancercl
        11
    dancercl  
       2012-12-16 13:34:07 +08:00
    难道panic和recover不算异常处理的一种方式吗?
    预计有可能发生的错误用返回错误码来处理,完全意料之外的panic用recover来处理,这不是和C++/JAVA/C#一样的模式么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1176 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 18:13 · PVG 02:13 · LAX 10:13 · JFK 13:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.