Go语言之错误处理

一. 异常处理

1. error接口

Go语言中引入了一个关于错误处理的标准模式error接口,是go语言的内置接口类型

type error interfance{
    Error() string
}

具体使用:

package main

import (
    "errors"
    "fmt"
)

func MyDiv(a, b int) (r int, e error) {

    e = nil
    if b == 0 {
        e = errors.New("分母不能为0")
    } else {

        r = a /b
    }
    return r, e
}

func main() {

    result, err := MyDiv(10, 2)

    if err != nil {

        fmt.Println("err == ", err)

    } else {
        fmt.Println("result == ", result)

    }

2. panic

  • 我们不应该通过调用panic函数来报告普通任务,而应该只是把他作为报告致命错误的一种方式
  • 当panic异常发生时,程序会中断运行

3. recover

package main

import "fmt"

func texta()  {
    fmt.Println("aaaaaaaaaaaaaaaaa")
}

func textb(x int)  {

    defer func() {
        if err := recover() ;  err != nil {
            fmt.Println(err)
        }
    }()

    var a [10]int
    a[x] = 111
}

func textc()  {
    fmt.Println("cccccccccccccccccc")

}



func main() {
    texta()
    textb(20)
    textc()
}

/*
    aaaaaaaaaaaaaaaaa
    runtime error: index out of range
    cccccccccccccccccc
*/

    原文作者:纳萨立克
    原文地址: https://www.jianshu.com/p/89c3d2ed98c2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞