golang 的错误处理真的很糟糕
一直用 golang ,一直有人吐槽 golang 错误处理很繁琐,一开始觉得还好,直到遇见了 rust 。不得不说 rust 错误处理真的很优雅。写了一段时间 rust 反过来写 golang ,繁琐感瞬间就出来了
确实,看过 rust 就觉得 go 的 err 有点...
我见过吐槽 go 的 err 的,下都都会用 java 来反驳,来证明 go 的 err 是最优雅的
Box
github.com/morrisxyang/errors, 这里实现了 wrap, unwrap 等常见能力, 添加了错误码和堆栈的支持.rust 的 pattern matching 可以给我一些 example 和资料吗? 我看看是否可以添加.
现在 go 错误处理比刚出来的时候好多了,繁琐是有点,但是没啥心智负担(对写应用来说),只是和 rust 比起来显得有点草率,基本和 rust 无脑 anyhow::Error 一样
if err != nil
感觉,rust>go>其他绝大部分 try-catch
大道至简 警告[滑稽]
接触 go 之前一直写 c ,go 这种错误处理方式倒觉得挺适应的
try-catch 比 go 的 error 更恶心
try-catch 多被用于异常处理,控制流来说是快速返回调用栈的作用(stack unwinding),C 里也有类似的 setjmp,longjmp 机制。而 go 里 error 是多返回值,绝大多数语言其实也都可以实现类似的方案。
同意 java 到处充斥这个 try catch 一层套一层
golang 的很糟糕,rust 比 golang 好在哪里?
我们 go 语言错误处理就是这样子的 (#^.^#)
golang 官方解释说:异常也被认为是一种返回值类型
Java 的 try catch 不是能在最外层统一处理吗?我感觉这样挺省事的啊,反而是 go 每一层都要 if err != nil 感觉很啰唆
月经贴了属于是
个人觉得 java 的报错摆烂处理方便些; golang 精确处理方便些rust 怎么都方便
意思是直接 panic 抛出然后拿个 defer recover 统一处理?
rust 主要是有个 Result 枚举类型,以及语法糖'?',再加上一些 map_err unwrap_or 函数之类的,go 能做吗?
确实,相比 try-catch ,go 的错误处理相对好很多了,但比 rust 还是差一些
很多语言都是 try catch 那套吧? Java 主要是检查性异常必须捕获就很恶心了,但是现在也可以用 lombok 插件加个
go 的 if err != nil {} 比 java 的 try catch 难用多了.. 这玩意儿每个地方都要强制 if err!=nil {}一波 rust 的还可以. 毕竟可以? 直接往外面传播. 可以在最外层统一处理.
uc 浏览器 什么网盘? 扫描? 看剧? 功能是否太多 x, via 浏览器之内的东西基本做了 10 年, 资源嗅探,下载,扫码,去广告 功能和设置也非常多了. 外有 kiw…
有咩有推荐的其他 os 先凑合用着 实在不行了再换 不转一直用也行 CentOS 都可以继续用,win10 算什么 Win98 ,跳过 WinMe ,WinXP ,跳过…
阿里巴巴 JAVA 开发手册是这样定义的: DO ( Data Object ):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。 DTO ( Data Tran…