加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

何时在Golang中使用os.Exit()和panic()?

发布时间:2020-12-16 18:04:27 所属栏目:大数据 来源:网络整理
导读:有人可以解释os.Exit()和panic()之间的关键差异,以及它们在实践中如何在Golang中使用? 首先,每当你有一个“如何在实践中使用”的问题,一个好的方法开始是 search的Go源代码(或任何足够大的Go代码库,真的),和 package docs的答案。 现在,os.Exit和pani
有人可以解释os.Exit()和panic()之间的关键差异,以及它们在实践中如何在Golang中使用?
首先,每当你有一个“如何在实践中使用”的问题,一个好的方法开始是 search的Go源代码(或任何足够大的Go代码库,真的),和 package docs的答案。

现在,os.Exit和panic是完全不同的。 panic在程序或其部分已达到不可恢复状态时使用。

When panic is called,including implicitly for run-time errors such as indexing a slice out of bounds or failing a type assertion,it immediately stops execution of the current function and begins unwinding the stack of the goroutine,running any deferred functions along the way. If that unwinding reaches the top of the goroutine’s stack,the program dies.

os.Exit用于需要立即中止程序,没有恢复或运行延迟清理语句的可能性,并且还返回错误代码(其他程序可以用来报告发生了什么)。这在测试中很有用,当你已经知道在这一个测试失败后,另一个测试也会失败,所以你可能现在就退出。这也可以在您的程序完成它需要做的一切时使用,现在只需要退出,即打印帮助消息后。

大多数时候你不会使用panic(你应该返回一个错误),你几乎不需要os.Exit在一些情况下的测试和快速程序终止。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读