首页 > 其他分享 >无涯教程-Go - 错误处理

无涯教程-Go - 错误处理

时间:2023-12-20 16:32:25浏览次数:37  
标签:err fmt 无涯 Sqrt Println value Go 错误处理 result

Go编程提供了一个非常简单的错误处理框架,具有以下声明的内置错误接口类型-

type error interface {
   Error() string
}

函数通常返回错误作为最后的返回值,使用 errors.New 构造基本的错误消息,如下所示:

func Sqrt(value float64)(float64, error) {
   if(value < 0){
      return 0, errors.New("Math: negative number passed to Sqrt")
   }
   return math.Sqrt(value)
}

使用返回值和错误消息。

result, err:= Sqrt(-1)

if err != nil {
   fmt.Println(err)
}

Error Handling - 示例

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(-1)

   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
   
   result, err=Sqrt(9)

   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
}

编译并执行上述代码后,将产生以下输出-

Math: negative number passed to Sqrt
3

参考链接

https://www.learnfk.com/go/go-error-handling.html

标签:err,fmt,无涯,Sqrt,Println,value,Go,错误处理,result
From: https://blog.51cto.com/u_14033984/8908761

相关文章

  • 爬虫-今日头条我的收藏-增量式导入到mongodb(三)
    背景:续接前文,当我们有了原始数据之后,自然会想如何利用这些数据。这些文件数据都是json格式,打开一个文本文件眼睛都要看花。所以想把这些数据导入到对应的数据库中,市面上几乎所有数据库都支持json格式存储。随着时间的推移,用户不断有新的收藏,这样就不断产生新的收藏文件。需要不......
  • go的封装、继承与多态的使用
    目录一、封装1.1公有封装1.2私有封装1.2.1工厂函数解析1.2.2&与*指针使用描述1.3深度封装二、继承与多态2.1继承与多态案例2.1.1继承代码分析2.1.2结构体实例化2.1.3多态代码分析一、封装​ 在Go语言中,封装是一种将数据和操作数据的方法组织在一起的概念。封装的目的......
  • 无涯教程-Go - Range(范围)
    Range关键字在for循环中使用,以迭代数组,切片,通道或映射的项。Range关键字在for循环中使用,以迭代数组(Array),切片(Slice),通道(Channel)或映射(Map)的项,对于数组和切片,它以整数形式返回元素的索引。对于Map,它返回下一个键值对(key/value)的键(key)。Range范围返回一个或两个值,如......
  • 无涯教程-Go - Slice(切片)
    GoSlice是GoArray的抽象,GoArray数组允许您定义可容纳相同种类的变量,但是它不提供任何内置方法来动态增加其大小或获取其自身的子数组。Slice切片克服了此限制,它提供了Array数组所需的许多实用程序功能,并广泛用于Go编程中。定义切片要定义Slice切片,可以将其声明为数组,而无需......
  • ReplaceGoogleCDN替换打不开的网页资源
    插件安装地址:ChromeFirefoxEdge背景在日常的网络浏览中,我们经常访问各种网站,其中包括大量使用了GoogleCDN(ContentDeliveryNetwork)的网页。虽然GoogleCDN在提供稳定、高效的内容分发方面表现出色,但在某些情况下,由于网络限制或其他原因,我们可能会遇到加载缓慢或无法访......
  • Why Choose Noregon JPRO Professional Diagnostic 2023 v3 Software?
     Welcometotheworldofautomotivediagnostics,whereprecisionmeetsefficiency.WiththeNoregonJPROProfessionalDiagnostic2023v3software,mechanics,technicians,andautomotiveenthusiastscanrevolutionizethewaytheyapproachvehiclediagnost......
  • MongoDB中如何优雅地删除大量数据
    删除大量数据,无论是在哪种数据库中,都是一个普遍性的需求。除了正常的业务需求,我们也需要通过这种方式来为数据库“瘦身”。为什么要“瘦身”呢?表的数据量到达一定量级后,数据量越大,表的查询性能相对也会越差。毕竟数据量越大,B+树的层级会越高,需要的IO也会越多。表的数据有......
  • 无涯教程-Go - 作用域
    任何编程中的作用域是程序中可以存在定义的变量并且不能访问该变量的区域,在三个地方可以使用Go编程语言声明变量-在函数或块内(local变量)所有函数之外(global变量)在函数参数中(formal参数)让我们找出什么是local和global变量以及什么是formal参数。局部变量在......
  • ArgoCD 添加私有仓库
    HTTPS方式访问私有仓库ArgoCDCLI添加私有仓库#argocdrepoaddhttps://github.com/argoproj/argocd-example-apps--username<username>--password<password>dashboard添加私有仓库SSHPrivateKeyCredentialArgoCDCLI添加known_hosts#ssh-keyscan-p3......
  • 无涯教程-Go - 常量类型
    常量是指程序在执行过程中不得更改的固定值。整数类型整数文字可以是十进制,八进制或十六进制常量,前缀指定基数或基数:十六进制为0x或0X,八进制为0,十进制为空。整数文字也可以具有后缀,该后缀是U和L的组合,分别表示无符号和长整数,后缀可以是大写或小写,并且可以是任何顺序。212......