美文网首页
Go语言学习笔记-错误处理

Go语言学习笔记-错误处理

作者: noonenote | 来源:发表于2019-04-20 19:17 被阅读0次

错误


package err_test

import (
        "errors"
        "testing"
)


var LessThanTwoError = errors.New("n should be not less than 2")
var LargerThenHundredError = errors.New("n should be not larger than 100")

func GetFibonacci(n int) ([]int, error) {
        if n < 2 {
                return nil, LessThanTwoError
        }
        if n > 100 {
                return nil, LargerThenHundredError
        }
        fibList := []int{1, 1}

        for i := 2; /*短变量声明 := */ i < n; i++ {
                fibList = append(fibList, fibList[i-2]+fibList[i-1])
        }
        return fibList, nil
}


func TestGetFibonacci(t *testing.T) {
        if v, err := GetFibonacci(128); err != nil {
                if err == LargerThenHundredError {
                        t.Log("Error LargerThenHundredError")
                }
                t.Error(err)
        } else {
                t.Log(v)
        }

}

panic

package panic_recover

import (
//      "errors"
        "fmt"
        "os"
        "testing"
)

func TestPanicVxExit(t *testing.T) {
        defer func() {
                if err := recover(); err != nil {
                        fmt.Println("recovered from ", err)
                }
        }()

        fmt.Println("Start")
        //panic(errors.New("Something wrong!"))
        os.Exit(-1)
        fmt.Println("End")
}

执行到panic时,后面的不会继续执行,按照defer函数列表逆序执行,defer里可用recover捕获panic; os.Exit(-1)执行后不会执行defer

相关文章

  • Go 语言基础——错误处理

    学习目标 掌握错误处理 掌握自定义错误处理 掌握defer关键字的使用 错误处理 GO没有异常处理机制 Go语言引...

  • 笨办法学golang(三)

    这是Go语言学习笔记第三篇。 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 Go语言基本类型主要有布...

  • 笨办法学golang(二)

    这是Go语言学习笔记的第二篇文章。 Go语言学习笔记参考书籍「Go语言编程」、Go官方标准库 前文提要 上篇文章中...

  • 笨办法学golang(四)

    这是Go语言学习笔记的第四篇 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 数组 数组是指一系列同类...

  • 2021-06-08

    Go的编程模式,错误处理 引入了其他语言的错误处理模式,最后,说明Go错误处理的好处。主要是将函数的入参、出参、错...

  • Go语言学习笔记-错误处理

    错误 panic 执行到panic时,后面的不会继续执行,按照defer函数列表逆序执行,defer里可用reco...

  • golang

    golang go和php的区别类型:go为编译性语言;php解释性语言错误:go的错误处理机制;php本身或者框...

  • Learn Golang in Days - Day 15-Go

    Learn Golang in Days - Day 15-Go错误处理 简介 Go语言通过内置错误接口提供了简单...

  • Go 语言极速入门

    本系列文章主要是记录《Go 语言实战》和《Google 资深工程师深度讲解 Go 语言》的学习笔记。 Go 语言极...

  • go 语言错误处理

    go 语言错误处理 panic recover defer 最大公约数 最小公倍数 go语言中的没有try cat...

网友评论

      本文标题:Go语言学习笔记-错误处理

      本文链接:https://www.haomeiwen.com/subject/ukpvwqtx.html