美文网首页
Go语言之错误处理

Go语言之错误处理

作者: 纳萨立克 | 来源:发表于2018-10-10 15:00 被阅读12次

一. 异常处理

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
*/

相关文章

  • Go语言之错误处理

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

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

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

  • 2021-06-08

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

  • Learn Golang in Days - Day 15-Go

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

  • Go 专栏|错误处理:defer,panic 和 recover

    原文链接: Go 专栏|错误处理:defer,panic 和 recover[https://mp.weixin....

  • golang

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

  • 便捷golang开发

    go语言之旅:https://tour.go-zh.org/如何使用go编程:https://go-zh.org/...

  • Go开发关键技术指南:Errors

    Errors 错误处理是现实中经常碰到的、难以处理好的问题,下面会从下面几个方面探讨错误处理: 为什么Go没有选择...

  • go 语言错误处理

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

  • 基础-3

    异常处理 error接口:Go中的一个关于错误处理的标准模式,属于Go内建的接口类型;type error int...

网友评论

      本文标题:Go语言之错误处理

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