【问题标题】:golang error handling types mismatchedgolang 错误处理类型不匹配
【发布时间】:2017-08-28 23:02:15
【问题描述】:

我尝试学习 golang 中的错误处理以了解错误处理的工作原理。我有以下代码:

var a int8
var b int32    
var err error
c := a + b //types mismatched error
if err != nil {
    fmt.Println(err)
}

当我尝试在 vim 中使用 :GoRun 运行它时,我得到类型不匹配的错误。

我的问题是,如果在编译过程中发生错误甚至可能发生这种情况,我该如何捕捉该错误并将消息打印到屏幕上?

【问题讨论】:

  • 这是一个编译时错误,没有什么可以“捕捉”和打印,因为你永远无法运行它。
  • 谢谢 Verran 我是这么认为的。

标签: go types


【解决方案1】:

尝试在 Go 中添加两种不同的类型是编译时错误。程序永远不会编译,因此永远不会运行,所以没有什么可捕获的——除非是在编写程序时。

您只会在从函数返回时检查err。你这里没有函数,所以你的err 永远不会被设置(除了你的代码不会编译的事实)。

这与 JavaScript 或 Perl 等语言不同,它们没有严格的类型检查,因此您确实会遇到类似这样的运行时错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 2013-01-16
    • 2014-02-05
    • 2018-06-08
    相关资源
    最近更新 更多