GO教程
GO控制语句
GO高级

Go 错误

Go 错误

Go 没有像 Java 中的 try/catch 这样的异常机制,我们不能在 Go 中抛出异常。
Go 使用了不同的机制被称为延迟恐慌和恢复机制。
Go 通过返回一个错误对象来处理函数、方法的简单错误。错误对象可能是唯一或最后一个返回值。如果函数中没有错误,则错误对象为零。
我们应该始终在调用语句中检查错误,无论是否收到任何错误。
我们应该永远不要忽略错误,它可能会导致程序崩溃。
检测和报告错误情况的方法是
可能导致错误的函数会返回两个变量: 一个值和一个错误代码,成功时为 nil,错误时为 != nil。 在函数调用之后检查错误。如果出现错误(如果错误 != nil),则停止执行实际函数(或在必要时停止整个程序)。
Go 有预定义的错误接口类型
type error interface {
    Error() string
}
我们可以通过使用error.New从错误包中定义错误类型并提供适当的错误信息,如:
err := errors.New("math-square root of negative number")

Go 错误示例

package main
import "errors"
import "fmt"
import "math"
func Sqrt(value float64) (float64, error) {
   if (value < 0) {
      return 0, errors.New("Math: negative number passed to Sqrt")
   }
   return math.Sqrt(value), nil
}
func main() {
   result, err := Sqrt(-64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
   result, err = Sqrt(64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
}
输出:
Math: negative number passed to Sqrt
8

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4