登录
首页 >  Golang >  Go问答

Go语言错误处理,defer问题

来源:SegmentFault

时间:2023-01-20 09:27:01 324浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《Go语言错误处理,defer问题》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下defer、go,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

package main import ( "fmt" "os" ) func main() { files, err := os.Open("testqq.txt") defer files.Close() if err != nil { fmt.Printf("Error is:%s", "Game Over!") return } }

这段代码简单打开文件"testqq.txt", 此文件根本就不存在的情况下, defer files.Close()会报错。
因为files是nil, 这个代码是不要判断files是否为nil。

正确答案

这个代码你需要这样写,首先判断错误,然后再defer定义

func main() { files, err := os.Open("testqq.txt") if err != nil { fmt.Printf("Error is:%s", "Game Over!") return } defer files.Close() }

今天带大家了解了defer、go的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>