【问题标题】:Exception support in Go programming languageGo 编程语言中的异常支持
【发布时间】:2018-07-17 20:01:50
【问题描述】:

一些消息来源说,出于性能原因,Go 不支持异常,但另一些消息来源说 Google 团队实现了一些。 Go 当前对异常的支持是什么?

【问题讨论】:

  • Go 没有异常,不是出于性能原因,也没有人“实现过几个”。你到底指的是什么?
  • Go 语言支持的一切都在规范中:golang.org/ref/spec
  • 我指的是 Go 中当前的异常支持。是否有异常。

标签: go exception-handling


【解决方案1】:

Go 没有异常,和that is a design decision,不基于性能:

我们认为,将异常耦合到控制结构(如 try-catch-finally 习惯用法)会导致代码复杂化。它还倾向于鼓励程序员将过多的普通错误(例如无法打开文件)标记为异常。

Go 采用了不同的方法。对于简单的错误处理,Go 的多值返回可以轻松报告错误,而不会重载返回值。规范的错误类型与 Go 的其他特性相结合,使错误处理变得愉快,但与其他语言中的处理完全不同。

【讨论】:

  • 非常好的答案。谢谢。
  • 一篇文章的强制性参考,它提供了为什么语言的设计者可能选择不存在例外的事实证据是this ;-)
猜你喜欢
  • 2015-09-08
  • 1970-01-01
  • 2011-11-04
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多