iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Go - 错误。无法解包自定义错误类型
  • 333
分享到

Go - 错误。无法解包自定义错误类型

go语言 2024-02-09 16:02:29 333人浏览 八月长安
摘要

PHP小编西瓜为您介绍:在Go语言中,当我们使用自定义错误类型时,有时会遇到"错误。无法解包自定义错误类型"的问题。这个问题通常发生在我们尝试将自定义错误类型传递给其他函数或方法时。虽

PHP小编西瓜为您介绍:在Go语言中,当我们使用自定义错误类型时,有时会遇到"错误。无法解包自定义错误类型"的问题。这个问题通常发生在我们尝试将自定义错误类型传递给其他函数或方法时。虽然这看起来是一个棘手的问题,但实际上有几种方法可以解决这个问题。在本文中,我们将探讨这个问题的原因,并提供解决方案,帮助您解决这个困扰。

问题内容

我正在尝试使用 go stdlib 包错误来使用 errors.as 解包自定义错误类型,但是似乎检查失败并且我无法提取底层错误。

我提取了一个最小的可重现示例:

package main

import (
    "errors"
    "fmt"
)

type myError struct {
    err error
}

func (m myError) Error() string {
    return fmt.Sprintf("my error: %s", m.err)
}

func retError() error {
    return &myError{errors.New("wrapped")}
}

func main() {
    var m myError
    if err := retError(); errors.As(err, &m) {
        fmt.Println("unwrapped", m.err)
    } else {
        fmt.Println(err)
    }
}

https://go.dev/play/p/i7bnk4-rdib - go 游乐场上的示例。如果启动,它将打印“我的错误:包装”,而不是预期的“未包装包装”。

errors.as 文档中的示例有效,我似乎无法理解我做错了什么 - 我将 *myerror 传递给 errors.as,这似乎是正确的(因为传递了 myerror引发恐慌:target 必须是非零指针,这是预期的)。

解决方法

而不是:

func reterror() error {
    return &myerror{errors.new("wrapped")}
}

做:

func retError() error {
    return myError{errors.New("wrapped")}
}

以上就是Go - 错误。无法解包自定义错误类型的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Go - 错误。无法解包自定义错误类型

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

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

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

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

下载Word文档
猜你喜欢
  • Go - 错误。无法解包自定义错误类型
    php小编西瓜为您介绍:在Go语言中,当我们使用自定义错误类型时,有时会遇到"错误。无法解包自定义错误类型"的问题。这个问题通常发生在我们尝试将自定义错误类型传递给其他函数或方法时。虽...
    99+
    2024-02-09
    go语言
  • 自定义golang函数错误类型
    是的,在 go 中可以定义自定义错误类型,通过创建实现 error 接口的结构体,并提供 error() 方法返回错误消息。自定义错误类型可以使用 errors.new 函数或自定义类型...
    99+
    2024-05-02
    golang 函数类型 关键词
  • 在Golang中实现自定义错误类型
    在 go 中创建自定义错误类型可提供更详细的错误消息。创建自定义错误类型:用 error 接口定义错误类型,实现 error() 方法返回错误消息。使用自定义错误类型:像使用任何其他错误...
    99+
    2024-04-15
    golang 关键词
  • JavaScript 错误处理中的自定义错误类型:创建特定于应用程序的错误
    ...
    99+
    2024-04-02
  • java已定义类型错误如何解决
    要解决Java中已定义类型错误,可以尝试以下方法:1. 检查已导入的类:确保已正确导入需要使用的类。可以使用import语句导入类,...
    99+
    2023-08-29
    java
  • 为什么我的自定义错误类型会导致特定模式的错误?
    有志者,事竟成!如果你在学习Golang,那么本文《为什么我的自定义错误类型会导致特定模式的错误?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续...
    99+
    2024-04-05
  • 如何在 Golang 中使用自定义错误类型?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • 对自定义错误类型分类是否有一种标准方法
    积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《对自定义错误类型分类是否有一种标准...
    99+
    2024-04-05
  • Gorm 在自定义字符串类型上返回扫描仪错误
    php小编香蕉介绍:在Gorm中,当你尝试在自定义的字符串类型上进行扫描操作时,可能会遇到错误。这个问题可能会导致扫描仪无法正确解析字符串,从而导致程序出错。这是因为Gorm默认使用`...
    99+
    2024-02-11
    overflow
  • SpringBoot自定义错误处理逻辑详解
    目录1. 自定义错误页面2. @ControllerAdvice+@ExceptionHandler3. 使用@ResponseStatus处理自定义异常4. 框架底层异常5. 自定...
    99+
    2022-11-13
    SpringBoot错误处理逻辑 SpringBoot错误处理
  • 使用BindingResult 自定义错误信息
    目录BindingResult 自定义错误信息前提概要基础框架配置文件和Java代码的修改在Controller方法中指定需要进行校验进行自定义校验在JSP页面上显示校验错误信息Bi...
    99+
    2024-04-02
  • pythonflask自定义404错误页面方式
    目录python flask自定义404错误页面这里有些地方需要注意下 Python Flask捕获异常,捕获404错误,errorhandler(),自定义异常处理函数总...
    99+
    2022-12-21
    python flask flask自定义404页面 自定义404错误页面
  • Laravel如何自定义500错误页面
    这篇文章主要介绍了Laravel如何自定义500错误页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel如何自定义500错误页面文章都会有所收获,下面我们一起来看看吧。Laravel 5.1中500...
    99+
    2023-07-04
  • Go错误:无法在没有实例化的情况下使用泛型类型
    php小编苹果今天要和大家分享的是关于Go语言中的一个错误:无法在没有实例化的情况下使用泛型类型。在Go语言中,泛型是一种非常强大的特性,可以让我们编写更加通用和灵活的代码。然而,有时...
    99+
    2024-02-09
    go语言
  • SpringBoot如何自定义错误处理逻辑
    本篇内容主要讲解“SpringBoot如何自定义错误处理逻辑”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot如何自定义错误处理逻辑”吧!1. 自定义错误页面将自定义错误页面放在...
    99+
    2023-07-04
  • Go错误:int类型的值作为int值
    问题内容 我是编程和 stackoverflow 的初学者。 我必须在 go 中创建一个递归函数来添加数组的元素,如果数组的长度为 0,则返回 0。 func Suma(vector ...
    99+
    2024-02-06
    overflow
  • 如何自定义jsp中的错误页面
    这篇文章主要介绍“如何自定义jsp中的错误页面”,在日常操作中,相信很多人在如何自定义jsp中的错误页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何自定义jsp中的错误页面”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-03
  • 如何在uniapp中自定义错误页面
    随着移动互联网的蓬勃发展,手机APP已经成为了人们日常生活的必需品。为了满足用户的需求,APP开发变得越来越繁琐和复杂。像uniapp这样的跨平台开发框架,为开发者提供了更便捷的开发方式。但在使用过程中,我们不可避免地会遇到一些错误或异常情...
    99+
    2023-05-14
  • 如何自定义处理 Golang 中的错误?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • JSON 对象未定义错误的解决方法
    要解决 JSON 对象未定义的错误,可以尝试以下几种方法:1. 确保引入了正确的 JSON 库: 在 JavaScript 中,要操...
    99+
    2023-08-15
    JSON
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作