iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang中如何返回错误?
  • 720
分享到

golang中如何返回错误?

2024-04-04 23:04:46 720人浏览 安东尼
摘要

欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《golang中如何返回错误?》,这篇文章主要讲到等等知识,如果你对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的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

您可能感兴趣的文档:

--结束END--

本文标题: golang中如何返回错误?

本文链接: https://www.lsjlt.com/news/596642.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • golang中如何返回错误?
    欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《golang中如何返回错误?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持...
    99+
    2024-04-04
  • golang如何返回错误信息?
    在 go 中返回错误信息:使用 error 类型表示错误信息。使用 errors.new() 创建简单错误信息。使用 fmt.errorf() 创建详细错误信息。通过 if err !=...
    99+
    2024-04-22
    golang 错误返回
  • golang函数返回错误
    Golang是一种高效,快速和可靠的编程语言,使用Golang编写的程序通常有着出色的性能和可靠性。然而,在编写Golang代码时,遇到错误和异常情况是不可避免的。因此,Golang中如何处理函数返回错误是一个非常重要的问题。在Golang...
    99+
    2023-05-14
  • Golang 函数返回值如何处理错误?
    go 函数使用 error 类型表示错误。调用者可通过检查 error 的值来判断函数是否执行成功。错误处理方法有:使用 if 语句或 errchk 包的 check 函数。例如:使用 ...
    99+
    2024-04-14
    golang 错误处理 git
  • php中curl如何返回错误
    小编给大家分享一下php中curl如何返回错误,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php curl返回错误的方法:首先创建一个指向一个不存在的位置的cU...
    99+
    2023-06-15
  • PHP 函数如何返回错误?
    php 函数返回错误可以通过以下方式:直接返回一个错误值:使用 error_get_last() 函数获取上一个错误信息。抛出一个异常:使用 throw 关键字创建一个异常对象,包含有关...
    99+
    2024-04-10
    php 错误处理
  • 如何从承诺内部返回错误?
    在编写代码时,我们经常需要处理一些可能出现错误的情况。然而,有时候我们需要在函数或方法内部返回错误,以便在调用该函数或方法时能够正确处理错误。在PHP中,我们有几种方法可以实现这一点。...
    99+
    2024-02-09
  • golang如何返回指针?
    在 go 中返回指针允许直接访问原始数据。返回指针的语法是使用 星号前缀类型,例如:func getpointer() int { var x int = 10; return &am...
    99+
    2024-04-23
    golang 指针 并发访问
  • 如何解决JQuery ajax中error返回错误及一直返回error的问题
    本篇文章为大家展示了如何解决JQuery ajax中error返回错误及一直返回error的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。进入百度搜索此问题,发...
    99+
    2024-04-02
  • php curl返回错误码60如何解决
    今天有用户调用一个curl方法时,遇到如下的错误,查找了一些资料终于解决了。解决方法记录一下,留着自己以后自已查阅用。 错误代码 cURL error 60: SSL certi...
    99+
    2024-04-02
  • golang如何返回结构体?
    如何在 golang 中返回结构体?在函数签名中指定结构体类型,如:func getperson() person {}。在函数体内使用 return {} 语句返回结构体,其中包含所需...
    99+
    2024-04-23
    golang 结构体
  • python出现错误后如何返回上一步
    在 Python 中,如果出现错误,可以使用 `try-except` 语句来捕获并处理异常。下面是一个简单的例子:```pytho...
    99+
    2023-10-11
    python
  • PHP中Laravel关联查询返回错误id如何解决
    这篇文章主要介绍了PHP中Laravel关联查询返回错误id如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP中Laravel关联查询返回错误id如何解决文章都会有所收获,下面我们一起来看看吧。在 L...
    99+
    2023-07-04
  • laravel中如何用dingo API返回自定义错误信息
    本篇内容主要讲解“laravel中如何用dingo API返回自定义错误信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“laravel中如何用dingo API返回自定义错误信息”吧!lara...
    99+
    2023-07-04
  • Golang函数如何返回多值?
    go 中函数可以通过逗号分隔的多个变量返回多个值。语法为:func functionname(parameters) (returnvalue1, returnvalue2, ..., ...
    99+
    2024-04-11
    golang 多值返回
  • mysql输入错误怎么返回
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-30
  • 错误。如果包含切片,则返回 false
    问题内容 当我有一个包含嵌套在其中的切片的错误结构时,Error.Is 似乎无法正常工作: package main import ( "errors" "fmt" ...
    99+
    2024-02-12
  • golang函数如何获取返回值?
    go 语言函数通过返回值传递数据。要返回单个值,只需在函数签名中指定返回值类型,并在调用函数时使用变量接收返回值。要返回多个值,则需要在函数签名中使用元组类型,并在调用函数时使用多个变量...
    99+
    2024-04-22
    返回值 golang
  • golang如何忽略函数返回值?
    在 go 语言中,可使用下划线标识符 _ 忽略函数返回值:_ 表示忽略第一个返回值。指定变量名捕获后续返回值(例如错误处理)。当明确不需要返回值时才建议忽略它们。 Go 语言中忽略函数...
    99+
    2024-04-23
    golang 忽略函数返回值
  • golang如何检查函数返回值?
    要优雅地检查 go 语言函数返回值,可以使用以下两种方法:使用错误值:这是一个处理错误的常用方法,如果函数返回 non-nil 值,则表示发生错误。使用多个返回值:当函数需要返回多个值时...
    99+
    2024-04-23
    golang 检查函数返回值
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作