社区
其他技术讨论专区
帖子详情
PHP转go刚入门。。我可以不写err != nil嘛?
weixin_38049686
2019-09-20 10:00:01
感觉err != nil这玩意太影响效率了,而且大多数情况下我根本就没有在里面写东西,就是一空壳,
我在github上下载的许多项目都是这样不实际处理err,却又写个err != nil的空壳子出来。
所以我可以在项目中大范围放弃写这种err != nil吗?就像PHP那样。。。
...全文
65
14
打赏
收藏
PHP转go刚入门。。我可以不写err != nil嘛?
感觉err != nil这玩意太影响效率了,而且大多数情况下我根本就没有在里面写东西,就是一空壳, 我在github上下载的许多项目都是这样不实际处理err,却又写个err != nil的空壳子出来。 所以我可以在项目中大范围放弃写这种err != nil吗?就像PHP那样。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38066880
2019-09-20
打赏
举报
回复
最早我也讨厌err!=nil,后来在做应用时才知道,真是太有用了。有了它程序才更健壮,千万不要用_忽略。go开发的程序稳定性非常好。err的功劳最大。
weixin_38070905
2019-09-20
打赏
举报
回复
哈哈哈,今天我写 rpc 忽略了 其中一个 err ,找了半天才找到。。。
weixin_38078293
2019-09-20
打赏
举报
回复
从拍错的角度来说我不喜欢try cache
weixin_38097106
2019-09-20
打赏
举报
回复
这就是golang 语言的特性,我一开始 也不习惯,时间长了就习惯了 代码太丑了
weixin_38108526
2019-09-20
打赏
举报
回复
try-catch其实是很好用的 但是我才学Go 所以没法做比较,但是在java的经验看来,try-catch是个非常好的设计
weixin_38111164
2019-09-20
打赏
举报
回复
这点,我只能说各有优势。 try-catch我就举个反例,对于开发经验不足的人来说,try-catch会埋下无数坑。 他们不太喜欢错误处理,也不会花费精力思考每个调用异常的处理。 然后就会出现几种情况,外层捕获了,打印了日志以及错误堆栈对大多情况还是可以的。 但是偏偏有人喜欢吃掉堆栈,或者就不捕获。code review时,随着调用层数增多,就得花费更多的精力里里外外看一遍,思考是否存在问题。也就是开发人员将大量本应做的工作转嫁给review的人。如果没有review,那么就祈祷不会出错吧,至少祈祷日志包含了错误堆栈吧。 golang的这个不优雅,但是能告诉使用的人去正视错误,并思考如何处理
weixin_38111610
2019-09-20
打赏
举报
回复
try catch 在用户未处理异常时不作提醒,只有点进函数细节,才能看到throw的声明。 而err 在用户未处理时,编译报错,告知用户该函数有可能抛出错误,只有用户显式使用_才可以不处理err 二者的区别很明显,err的错误是否存在,是否该处理,完全可以由用户判断 而try catch,用户可能在不知情的情况下,忽略掉一下异常。
weixin_38128732
2019-09-20
打赏
举报
回复
https://studygolang.com/articles/20054 给你一个在GO里面写try catch的方法。
weixin_38132042
2019-09-20
打赏
举报
回复
可以用匿名变量_忽略返回值 result,_:=Test()
weixin_38144838
2019-09-20
打赏
举报
回复
这个是最简洁的错误处理之道了 人为传递错误出栈 减少你的出错率
weixin_38054276
2019-09-20
打赏
举报
回复
err存在的目的就是为了帮助分析处理可能出现的异常,或者记录。如果这些你都不想做,直接忽略就可以,当然没有问题
weixin_38058663
2019-09-20
打赏
举报
回复
像php那样你是准备 try catch还是什么都不写? try catch比if err!=nil废脑多了。
weixin_38062545
2019-09-20
打赏
举报
回复
err 用 _ 忽略就行了啊,在你认为出错的地方写上就OK了
weixin_38065454
2019-09-20
打赏
举报
回复
try catch和err != nil 是2种不同的错误处理模式啊。try catch是不管包含的范围内出现多少错误,什么错误一概捕获,然后该处理的处理,但实际使用都是直接向上层抛。而err != nil是为了精准的处理错误,控制程序异常,提高程序的健壮性,发现一个处理一个。
Go语言bcrypt密码加密实战:从原理到工程实践
本文详解Go语言中使用golang.org/x/crypto/bcrypt实现密码安全存储与验证的全流程,涵盖成本因子(cost)配置、盐值管理、GenerateFromPassword与CompareHashAndPassword核心函数使用、数据库存储设计、登录验证错误处理、并发性能优化及测试策略,强调其作为密码哈希黄金标准在工程实践中的安全性与易用性平衡。
SQL注入绕WAF技巧与Golang安全编程实战指南
本文系统讲解SQL注入绕WAF的常用技巧(如大小写变形、编码绕过、数据库特性利用),并结合十年Golang开发经验,强调参数化查询为根本防御手段。重点剖析Golang中database/sql预编译使用、ORM安全实践、输入白名单验证、最小权限原则及日志监控等纵深防御策略,覆盖DVWA实战对照与常见问题排查,聚焦现代Go应用的安全编码落地。
试试动 Go recover 刀子,看看能不能优化错误处理?
本文介绍了Go社区关于错误处理的新提案,旨在通过修改recover函数,使其支持指定类型的错误恢复,以实现类似try-catch的错误处理方式。提案背景是Go的错误处理一直存在争议,社区提出了多种方案,如try-catch、panic代替if
err
!=
nil
等,但未被采纳。新提案允许在recover中限制接收特定类型的错误,减少堆栈深度增加,并给出了一些可能的标准库应用场景。然而,此提案也面临争议,有人认为用户可以自行实现。
Go/
PHP
服务 5xx 错误根因排查:3 类 Panic 与 2 种代理场景分析
本文系统分析Go与
PHP
服务在代理架构下产生5xx错误的根因,重点涵盖Go中三类Panic(可恢复panic→500、不可恢复crash→502、死循环阻塞→504)的状态码映射机制,以及Nginx/API网关在两种代理场景下的故障表现;同时解析
PHP
-FPM进程模型、与Nginx协同问题,并提供基于日志、抓包、运行时分析和压力测试的全链路排查工具链。
记录一次goravel(golang全系都有这个问题)底层返回超时,但controller依然执行踩坑
博客探讨了Goravel等Go Web框架中因HTTP请求超时但goroutine未被强制终止,导致数据库事务已提交而响应返回超时的典型问题。核心原因在于Go协程无法外部强制关闭,需依赖context传递与主动监听。文章提出在DB操作、OSS上传等关键路径注入context、异常捕获与事务回滚的解决方案,并对比了任务队列异步化、延长超时等替代思路。
其他技术讨论专区
479
社区成员
790,948
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章