社区
其他技术讨论专区
帖子详情
PHP转go刚入门。。我可以不写err != nil嘛?
weixin_38060792
2019-09-20 10:41:49
感觉err != nil这玩意太影响效率了,而且大多数情况下我根本就没有在里面写东西,就是一空壳,
我在github上下载的许多项目都是这样不实际处理err,却又写个err != nil的空壳子出来。
所以我可以在项目中大范围放弃写这种err != nil吗?就像PHP那样。。。
...全文
54
14
打赏
收藏
PHP转go刚入门。。我可以不写err != nil嘛?
感觉err != nil这玩意太影响效率了,而且大多数情况下我根本就没有在里面写东西,就是一空壳, 我在github上下载的许多项目都是这样不实际处理err,却又写个err != nil的空壳子出来。 所以我可以在项目中大范围放弃写这种err != nil吗?就像PHP那样。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38089806
2019-09-20
打赏
举报
回复
这就是golang 语言的特性,我一开始 也不习惯,时间长了就习惯了 代码太丑了
weixin_38093507
2019-09-20
打赏
举报
回复
try-catch其实是很好用的 但是我才学Go 所以没法做比较,但是在java的经验看来,try-catch是个非常好的设计
weixin_38116481
2019-09-20
打赏
举报
回复
这点,我只能说各有优势。 try-catch我就举个反例,对于开发经验不足的人来说,try-catch会埋下无数坑。 他们不太喜欢错误处理,也不会花费精力思考每个调用异常的处理。 然后就会出现几种情况,外层捕获了,打印了日志以及错误堆栈对大多情况还是可以的。 但是偏偏有人喜欢吃掉堆栈,或者就不捕获。code review时,随着调用层数增多,就得花费更多的精力里里外外看一遍,思考是否存在问题。也就是开发人员将大量本应做的工作转嫁给review的人。如果没有review,那么就祈祷不会出错吧,至少祈祷日志包含了错误堆栈吧。 golang的这个不优雅,但是能告诉使用的人去正视错误,并思考如何处理
weixin_38119848
2019-09-20
打赏
举报
回复
try catch 在用户未处理异常时不作提醒,只有点进函数细节,才能看到throw的声明。 而err 在用户未处理时,编译报错,告知用户该函数有可能抛出错误,只有用户显式使用_才可以不处理err 二者的区别很明显,err的错误是否存在,是否该处理,完全可以由用户判断 而try catch,用户可能在不知情的情况下,忽略掉一下异常。
weixin_38122767
2019-09-20
打赏
举报
回复
https://studygolang.com/articles/20054 给你一个在GO里面写try catch的方法。
weixin_38125291
2019-09-20
打赏
举报
回复
可以用匿名变量_忽略返回值 result,_:=Test()
weixin_38131342
2019-09-20
打赏
举报
回复
这个是最简洁的错误处理之道了 人为传递错误出栈 减少你的出错率
weixin_38062902
2019-09-20
打赏
举报
回复
err存在的目的就是为了帮助分析处理可能出现的异常,或者记录。如果这些你都不想做,直接忽略就可以,当然没有问题
weixin_38065217
2019-09-20
打赏
举报
回复
像php那样你是准备 try catch还是什么都不写? try catch比if err!=nil废脑多了。
weixin_38065957
2019-09-20
打赏
举报
回复
err 用 _ 忽略就行了啊,在你认为出错的地方写上就OK了
weixin_38066359
2019-09-20
打赏
举报
回复
try catch和err != nil 是2种不同的错误处理模式啊。try catch是不管包含的范围内出现多少错误,什么错误一概捕获,然后该处理的处理,但实际使用都是直接向上层抛。而err != nil是为了精准的处理错误,控制程序异常,提高程序的健壮性,发现一个处理一个。
weixin_38066703
2019-09-20
打赏
举报
回复
最早我也讨厌err!=nil,后来在做应用时才知道,真是太有用了。有了它程序才更健壮,千万不要用_忽略。go开发的程序稳定性非常好。err的功劳最大。
weixin_38071717
2019-09-20
打赏
举报
回复
哈哈哈,今天我写 rpc 忽略了 其中一个 err ,找了半天才找到。。。
weixin_38087237
2019-09-20
打赏
举报
回复
从拍错的角度来说我不喜欢try cache
ASP.net Web开发基础
入门
视频教程(2021年10月录制)
这门课程2021年10月录制,开发工具使用VS2019,主要是针对软件行业新人的,适合在校大学生、准备
转
行的新人、软件公司新入职员工。这门课程主要讲解ASP.Net Web Form开发的基础知识,全是干货,是我们学习ASP.Net MVC开发和前后端分离架构开发的基础。这门课程里面讲的都是我们要经常使用的技术,对于开发过程中几年都用不到的技术点,这里不讲,因为即使讲了,过段时间也就忘了,大家时间都比较宝贵。对于初学者,最重要的是打好基础,能够轻松快速的
入门
,不用花太多时间去研究偏离主线细枝末节的一些技术点。一些不常用的技术点,我们在工作中遇到了,再去百度、CSDN查就可以了。大壮老师课程推荐:计算机软件行业
入门
指导视频教程https://edu.csdn.net/course/detail/30919HTML、CSS零基础Web开发快速
入门
视频教程https://edu.csdn.net/course/detail/32711JavaScript基础快速
入门
视频教程https://edu.csdn.net/course/detail/32172MySQL8.0数据库基础
入门
视频教程https://edu.csdn.net/course/detail/31285SQL Server 2019数据库基础
入门
视频教程https://edu.csdn.net/course/detail/30444Oracle 19c 数据库基础
入门
视频教程https://edu.csdn.net/course/detail/30903
golang
入门
笔记—数据库操作
//Go连接MySQL示例 func connect()(
err
err
or) { //数据库信息 dsn := "root:******@tcp(localhost:3306)/login" //"用户名:密码@[连接方式](主机名:端口号)/数据库名" //连接数据库 db,
err
:= sql.Open("mysql", dsn) //不会校验用户名密码是否正确,只校验数据源格式 if
err
!=
nil
{ //dsn格式不正确时报错 fmt.P
Go语言
入门
经典第19章
1.打印状态码 package main import ( "fmt" "net/http" ) func main() { url := "https://www.baidu.com/404" response,
err
:= http.Get(url) if
err
!=
nil
{ fmt.Println("http get
err
or",
err
) return } defer response.Body.Close() fmt.Println(response.Statu
Java开发人员的Go语言
入门
01-Go语言介绍
官方文档 Golang简称为Go,官方网站https://golang.org已迷失,可以通过如下国内的网站上手
入门
Go的中文api文档:https://studygolang.com/pkgdoc Go的中文
入门
文档:http://docscn.studygolang.com/doc/ Go的中文社区网址:https://studygolang.com 学习的目的 Go语言目前还是是小而美的语言,夸张的说法:全中国大概60%的开发岗位与java有关,而Go? 作为一个程序员,掌握底层的知
试试动 Go recover 刀子,看看能不能优化错误处理?
Go 的错误处理一直是表现最突出的一块地方,许许多多的同学都提出了各种提案,例如:引入 try-catch、用 panic 代替 if
err
!=
nil
、引入新的关键字等。但这些都被一一驳回了。不过社区依然还没放弃,周末看到有一个新的提案《proposal: runtime: add parameters to recover to only return speci...
其他技术讨论专区
433
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章