Go - error

By convention, errors have type error, a simple built-in interface.

type error interface {
    Error() string
}

Usage

Basically as a part return from function

package main

import (
    "errors"
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("division by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println("Result:", result)
}

Error vs. Panic

  • Error: Recoverable
  • Panic: Not Recoverable, exit and triggers defer , can be caught by recover

An example of panic

package main

import "fmt"

func main() {
    defer fmt.Println("First defer")
    defer fmt.Println("Second defer")

    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered:", r)
        }
    }()

    panic("Something bad happened")
    fmt.Println("This line will not be executed")
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景介绍 如果你有写过Go代码,那么你可以会遇到Go中内建类型error。Go语言使用error值来显示异常状态。...
    陈奇天阅读 7,328评论 0 6
  • 在Go中,对于处理错误一般分为两种情况: 错误和异常. 在Go中,错误的处理一般都是通过 error接口来指定;异...
    张哈阅读 5,778评论 0 2
  • Getting Started Use the Current Stable Version (7.1) Buil...
    Leonzai阅读 5,985评论 0 3
  • golang中defer,panic,recover是很常用的三个特性,三者一起使用可以充当其他语言中try…ca...
    smoke_zl阅读 27,865评论 2 28
  • error Go 使用 error 类型来表示函数执行过程中遇到的错误,如果返回的 error 值为 nil,则表...
    夜空一起砍猩猩阅读 1,477评论 0 0

友情链接更多精彩内容