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

2022-01-12 09:09:24 +08:00
 yuhangch

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

看起来怪怪的

3762 次点击
所在节点    Go 编程语言
24 条回复
abersheeran
2022-01-12 09:27:22 +08:00
确实有点怪……主要 Golang 风格不这样,乍一看不太适应😂
Wenco
2022-01-12 09:32:12 +08:00
每行都 Try ,这跟 if err 比到底方便在哪里==
fgwmlhdkkkw
2022-01-12 09:36:06 +08:00
这不是更🤢……
kiripeng
2022-01-12 09:46:01 +08:00
写完一分钟 debug2 小时,交接半天
richangfan
2022-01-12 09:52:01 +08:00
忘了 try...catch...吧
wellsc
2022-01-12 10:02:48 +08:00
alias try{} catch{} = if err != nil{}
fregie
2022-01-12 10:03:55 +08:00
看到这个甚至想破口大骂,并不是说 try catch 一定不好,为啥不直接用支持的语言呢?
SingeeKing
2022-01-12 10:06:55 +08:00
看完后唯一的感觉:这是什么鬼
sujin190
2022-01-12 10:08:44 +08:00
其实既然这么纠结于 err 这个问题,以其做这种更丑陋的方案,为啥不更进一步,直接用 panic 加 recover 的逻辑做一个 try...catch 就是了啊,反正 golang 自己就能操作自己的底层内存栈堆,panic 加 recover 本来也实现好了调用栈回收的过程,汇编编写个函数,调整一下 try 位置生成的汇编代码应该是可以实现的吧,仅猜测,不知有没有大神研究过这个问题
Kilerd
2022-01-12 10:09:28 +08:00
这时候才显示出 Rust 的 Try trait 和 ? 语法的强大性。不然总有人觉得 go 加上泛型就能再次吊打 Rust 。
Reficul
2022-01-12 10:34:14 +08:00
然后出啥问题栈都在最后的 Do 里
zoharSoul
2022-01-12 10:42:23 +08:00
这个有点像 rust, 不太像 try catch
littlewing
2022-01-12 10:48:54 +08:00
并不喜欢 try cache ,if err 挺好的啊,写 c++也从来不用 try cache
Zwying
2022-01-12 10:57:41 +08:00
我选择 if err
buzz2d0
2022-01-12 11:04:50 +08:00
好家伙,不如直接写 if err 了呀
XTTX
2022-01-12 11:05:25 +08:00
还是牺牲了 readability, 换回来 syntax sugar 和把一堆不相关的 func 生硬地连起来
coosir
2022-01-12 11:06:32 +08:00
@littlewing 可以看出来,你确实不太写 try catch
XTTX
2022-01-12 11:08:52 +08:00
如果真的那么喜欢 try catch ,干嘛不直接用 js 写后台就好了。err 类型多,最好还是用 switch.
Mohanson
2022-01-12 11:09:17 +08:00
ly020044
2022-01-12 13:20:58 +08:00
这样写我感觉会疯掉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX