V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
yuhangch
2.53D

来了来了, go 使用 try 来异常处理的实验性小工具

  •  
  •   yuhangch ·
    yuhangch · Jan 12, 2022 · 4638 views
    This topic created in 1577 days ago, the information mentioned may be changed or developed.

    https://github.com/ez4o/go-ez

    看起来怪怪的

    24 replies    2022-01-19 12:48:10 +08:00
    abersheeran
        1
    abersheeran  
       Jan 12, 2022
    确实有点怪……主要 Golang 风格不这样,乍一看不太适应😂
    Wenco
        2
    Wenco  
       Jan 12, 2022
    每行都 Try ,这跟 if err 比到底方便在哪里==
    fgwmlhdkkkw
        3
    fgwmlhdkkkw  
       Jan 12, 2022
    这不是更🤢……
    kiripeng
        4
    kiripeng  
       Jan 12, 2022
    写完一分钟 debug2 小时,交接半天
    richangfan
        5
    richangfan  
       Jan 12, 2022
    忘了 try...catch...吧
    wellsc
        6
    wellsc  
       Jan 12, 2022
    alias try{} catch{} = if err != nil{}
    fregie
        7
    fregie  
       Jan 12, 2022
    看到这个甚至想破口大骂,并不是说 try catch 一定不好,为啥不直接用支持的语言呢?
    SingeeKing
        8
    SingeeKing  
    PRO
       Jan 12, 2022
    看完后唯一的感觉:这是什么鬼
    sujin190
        9
    sujin190  
       Jan 12, 2022
    其实既然这么纠结于 err 这个问题,以其做这种更丑陋的方案,为啥不更进一步,直接用 panic 加 recover 的逻辑做一个 try...catch 就是了啊,反正 golang 自己就能操作自己的底层内存栈堆,panic 加 recover 本来也实现好了调用栈回收的过程,汇编编写个函数,调整一下 try 位置生成的汇编代码应该是可以实现的吧,仅猜测,不知有没有大神研究过这个问题
    Kilerd
        10
    Kilerd  
       Jan 12, 2022
    这时候才显示出 Rust 的 Try trait 和 ? 语法的强大性。不然总有人觉得 go 加上泛型就能再次吊打 Rust 。
    Reficul
        11
    Reficul  
       Jan 12, 2022
    然后出啥问题栈都在最后的 Do 里
    zoharSoul
        12
    zoharSoul  
       Jan 12, 2022
    这个有点像 rust, 不太像 try catch
    littlewing
        13
    littlewing  
       Jan 12, 2022
    并不喜欢 try cache ,if err 挺好的啊,写 c++也从来不用 try cache
    Zwying
        14
    Zwying  
       Jan 12, 2022
    我选择 if err
    buzz2d0
        15
    buzz2d0  
       Jan 12, 2022
    好家伙,不如直接写 if err 了呀
    XTTX
        16
    XTTX  
       Jan 12, 2022   ❤️ 1
    还是牺牲了 readability, 换回来 syntax sugar 和把一堆不相关的 func 生硬地连起来
    coosir
        17
    coosir  
       Jan 12, 2022
    @littlewing 可以看出来,你确实不太写 try catch
    XTTX
        18
    XTTX  
       Jan 12, 2022
    如果真的那么喜欢 try catch ,干嘛不直接用 js 写后台就好了。err 类型多,最好还是用 switch.
    Mohanson
        19
    Mohanson  
       Jan 12, 2022
    ly020044
        20
    ly020044  
       Jan 12, 2022
    这样写我感觉会疯掉
    kindjeff
        21
    kindjeff  
       Jan 12, 2022
    有点像 reddit 上一个尝试用 go 泛型写链式 future promise 语法和回调的项目,被群嘲
    Kisesy
        22
    Kisesy  
       Jan 12, 2022
    感觉有点像依赖注入
    amwyyyy
        23
    amwyyyy  
       Jan 12, 2022
    接手的同事:wdnmd
    Pengxiguaa
        24
    Pengxiguaa  
       Jan 19, 2022
    楼主似乎是改了库名,https://github.com/ez4o/go-try
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   971 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 110ms · UTC 20:17 · PVG 04:17 · LAX 13:17 · JFK 16:17
    ♥ Do have faith in what you're doing.