我的编程空间,编程开发者的网络收藏夹
学习永远不晚

golang中如何返回错误?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

golang中如何返回错误?

欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《golang中如何返回错误?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

在此代码中,我从环境变量中获取数据并使用它将电子邮件发送到给定的地址。仅当我从代码中排除错误时它才有效。我返回了错误并在中间件中使用它们,因为我不想每次都使用 log.fatal(err) 。但这给了我两个错误。

<强>1。不能使用“”(无类型字符串常量)作为返回语句中的[4]字符串值

<强>2。代码无法执行无法访问的返回语句

func LoadEnvVariable(key string) (string, error) {
    viper.SetConfigFile(".env")
    err := viper.ReadInConfig()
    return "", err

    value, ok := viper.Get(key).(string)
    if !ok {
        return "", err
    }
    return value, nil
}

func Email(value [4]string) ([4]string, error) {
    mail := gomail.NewMessage()

    myEmail, err := LoadEnvVariable("EMAIL")
    return "", err
    appPassword, err := LoadEnvVariable("APP_PASSWORD")
    return "", err

    mail.SetHeader("From", myEmail)
    mail.SetHeader("To", myEmail)
    mail.SetHeader("Reply-To", value[1])
    mail.SetHeader("subject", value[2])
    mail.SetBody("text/plain", value[3])

    a := gomail.NewDialer("smtp.gmail.com", 587, myEmail, appPassword)
    err = a.DialAndSend(mail)
    return "", err

    return value, nil
}


正确答案


用它来检查错误

if err != nil {  
       return "", err 
    }
func loadenvvariable(key string) (string, error) {
        viper.setconfigfile(".env")
        err := viper.readinconfig()
        if err != nil {
            return "", err
        }
    
        value, ok := viper.get(key).(string)
        if !ok {
            return "", err
        }
        return value, nil
    }
    
    func email(value [4]string) ([4]string, error) {
        mail := gomail.newmessage()
    
        myemail, err := loadenvvariable("email")
        if err != nil {
            return "", err
        }
    
        apppassword, err := loadenvvariable("app_password")
        if err != nil {
            return "", err
        }
    
        mail.setheader("from", myemail)
        mail.setheader("to", myemail)
        mail.setheader("reply-to", value[1])
        mail.setheader("subject", value[2])
        mail.setbody("text/plain", value[3])
    
        a := gomail.newdialer("smtp.gmail.com", 587, myemail, apppassword)
        err = a.dialandsend(mail)
        if err != nil {
            return "", err
        }
    
        return value, nil
    }

首先,错误处理,返回前检查err是否为nil!

所以不是:

myemail, err := loadenvvariable("email")
return "", err

而是:

myemail, err := loadenvvariable("email")
if err != nil {
    return "", err
}

其次,单个字符串类型 ""[4]string 的固定数组大小兼容。使用命名返回变量可能会让您的生活更轻松,因此您不需要在发生错误时传递显式的“零”值。因此,像这样定义你的函数签名:

func Email(in [4]string) (out [4]string, err error) {

    myEmail, err := LoadEnvVariable("EMAIL")
    if err != nil {
        return // implicitly returns 'out' and 'err'
    }

    // ...

    out = in
    return  // implicitly returns 'out' and nil 'err'
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

golang中如何返回错误?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

golang中如何返回错误?

欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《golang中如何返回错误?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评
golang中如何返回错误?
2024-04-04

golang如何返回错误信息?

在 go 中返回错误信息:使用 error 类型表示错误信息。使用 errors.new() 创建简单错误信息。使用 fmt.errorf() 创建详细错误信息。通过 if err != nil 捕获错误,并通过 fmt.println(e
golang如何返回错误信息?
2024-04-22

Golang 函数返回值如何处理错误?

go 函数使用 error 类型表示错误。调用者可通过检查 error 的值来判断函数是否执行成功。错误处理方法有:使用 if 语句或 errchk 包的 check 函数。例如:使用 if 语句处理错误:if err != nil { f
Golang 函数返回值如何处理错误?
2024-04-14

php中curl如何返回错误

小编给大家分享一下php中curl如何返回错误,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php curl返回错误的方法:首先创建一个指向一个不存在的位置的cU
2023-06-15

PHP 函数如何返回错误?

php 函数返回错误可以通过以下方式:直接返回一个错误值:使用 error_get_last() 函数获取上一个错误信息。抛出一个异常:使用 throw 关键字创建一个异常对象,包含有关错误的详细信息。PHP 函数如何返回错误在 PHP
PHP 函数如何返回错误?
2024-04-10

如何从承诺内部返回错误?

在编写代码时,我们经常需要处理一些可能出现错误的情况。然而,有时候我们需要在函数或方法内部返回错误,以便在调用该函数或方法时能够正确处理错误。在PHP中,我们有几种方法可以实现这一点。本文将介绍如何从承诺内部返回错误,以帮助开发人员更好地处
如何从承诺内部返回错误?
2024-02-09

golang如何返回指针?

在 go 中返回指针允许直接访问原始数据。返回指针的语法是使用 星号前缀类型,例如:func getpointer() int { var x int = 10; return &x }。指针可用于动态分配数据,使用 new 函数并解引用
golang如何返回指针?
2024-04-23

golang如何返回结构体?

如何在 golang 中返回结构体?在函数签名中指定结构体类型,如:func getperson() person {}。在函数体内使用 return {} 语句返回结构体,其中包含所需字段。结构体字段可以是基础类型或其他结构体。如何使用
golang如何返回结构体?
2024-04-23

python出现错误后如何返回上一步

在 Python 中,如果出现错误,可以使用 `try-except` 语句来捕获并处理异常。下面是一个简单的例子:```pythontry:# 执行可能出错的代码result = 1 / 0except ZeroDivisionError
2023-10-11

laravel中如何用dingo API返回自定义错误信息

本篇内容主要讲解“laravel中如何用dingo API返回自定义错误信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“laravel中如何用dingo API返回自定义错误信息”吧!lara
2023-07-04

PHP中Laravel关联查询返回错误id如何解决

这篇文章主要介绍了PHP中Laravel关联查询返回错误id如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP中Laravel关联查询返回错误id如何解决文章都会有所收获,下面我们一起来看看吧。在 L
2023-07-04

Golang函数如何返回多值?

go 中函数可以通过逗号分隔的多个变量返回多个值。语法为:func functionname(parameters) (returnvalue1, returnvalue2, ..., returnvaluen type) {}。实例:fu
Golang函数如何返回多值?
2024-04-11

mysql输入错误怎么返回

mysql 通过错误码和错误消息返回错误信息。错误码表示特定错误类型,错误消息提供详细信息。可通过以下步骤获取错误信息:获取错误码和消息:select last_insert_id():获取插入的 idselect found_rows()
mysql输入错误怎么返回
2024-05-30

错误。如果包含切片,则返回 false

问题内容当我有一个包含嵌套在其中的切片的错误结构时,Error.Is 似乎无法正常工作:package mainimport ("errors""fmt""os")type Response struct {Details []str
错误。如果包含切片,则返回 false
2024-02-12

golang函数如何获取返回值?

go 语言函数通过返回值传递数据。要返回单个值,只需在函数签名中指定返回值类型,并在调用函数时使用变量接收返回值。要返回多个值,则需要在函数签名中使用元组类型,并在调用函数时使用多个变量接收返回值。Go 语言函数如何获取返回值?在 Go
golang函数如何获取返回值?
2024-04-22

golang如何检查函数返回值?

要优雅地检查 go 语言函数返回值,可以使用以下两种方法:使用错误值:这是一个处理错误的常用方法,如果函数返回 non-nil 值,则表示发生错误。使用多个返回值:当函数需要返回多个值时,可以使用多个返回值,第一个返回值通常是主要值,后续返
golang如何检查函数返回值?
2024-04-23

golang如何忽略函数返回值?

在 go 语言中,可使用下划线标识符 _ 忽略函数返回值:_ 表示忽略第一个返回值。指定变量名捕获后续返回值(例如错误处理)。当明确不需要返回值时才建议忽略它们。Go 语言中忽略函数返回值在 Go 语言中,有时候我们可能需要忽略函数返回值
golang如何忽略函数返回值?
2024-04-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录