美文网首页
go 错误处理机制

go 错误处理机制

作者: StevenQin | 来源:发表于2019-03-02 19:08 被阅读0次

1、在默认情况下,当发生错误后(panic),程序就会退出(崩溃)
2、如果我们希望:当发生错误后,可以捕获到错误,并进行处理,保证程序可以继续运行。还可以捕获到错误后给管理员一个提示(邮件,短信)
3、这里引出下面要讲的错误处理机制

基本说明

1、Go中没有 try...catch...finally机制
2、Go中用 defer panic recover来处理

Go中可以抛出一个panic异常,然后在defer中通过recover(内置函数)捕获这个异常,然后进行处理。

  • 使用deferrecover来捕获和处理异常
package main

import (
    "fmt"
    "time"
)

func test() {
    //全用defer + recover 来捕获和处理异常
    defer func() {
        err := recover() //recover内置函数可以捕获到异常
        if err != nil {  //nil是err的零值
            fmt.Println("err=", err)
            //这里可以把信息发送给管理员
            fmt.Println("发送信息给管理员admin@steven.com")
        }
    }() //匿名函数的调用方式一:func(){}()
    num1 := 10
    num2 := 0
    res := num1 / num2
    fmt.Println("res=", res)
}
func main() {
    //测试
    test()
    for {
        fmt.Println("main()...下面的代码。。。。")
        time.Sleep(time.Second)
    }
}
  • 进行错误处理后,程序不会轻易挂掉,如果加入预警代码,可以让程序更健壮。

自定义错误

Go程序中,也支持自定义错误,全用errors.New panic内置函数。

1、errors.New("错误说明"),会返回一个error类型的值,表示一个错误
2、panic()内置函数,接收一个interface{}类型的值(也就是任何值)作为参数。可以接收error类型的变量输出错误信息,并退出程序

通过panic()内置函数来的error输出并退出程序。

package main

import (
    "errors"
    "fmt"
)

//自定义错误函数,如果传入的文件名不正确,返回自定义错误
func readConf(name string) (err error) {
    if name == "config.ini" {
        //读取。。。
        return nil //error的零值
    } else {
        return errors.New("文件名错误")
    }
}
func test() {
    err := readConf("config1.ini")
    if err != nil {
        //如果读取文件失败,用panic输出错误,并终止程序
        panic(err)
    }
    fmt.Println("test()后面的代码。。。。")
}
func main() {
    test()
    fmt.Println("main()后面的代码....")
}

相关文章

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

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

  • Go编写好的错误处理

    编写好的错误处理 Go的错误机制: 没有异常机制 error 类型实现了 error 接口type error i...

  • golang

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

  • 9. Go错误类型及错误处理

    9. Go错误类型及错误处理 Go 错误是指程序执行过程中遇到与设计流程不相符的情况,引发的人为的或自动的反馈机制...

  • 2021-06-08

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

  • go 错误处理机制

    1、在默认情况下,当发生错误后(panic),程序就会退出(崩溃)2、如果我们希望:当发生错误后,可以捕获到错误,...

  • 嵌入 WebAssembly 运行时和实例化 WebAssemb

    下面这段代码忽略了错误处理机制,介绍了如何在 Go 语言开发的宿主程序中嵌入 WebAssembly. 这段代码涉...

  • python 学习笔记10(错误处理) 2018-04-23

    一,错误处理 try...except...finally错误处理机制通过列子看看try机制: 例子中,r=10/...

  • 四、Web开发(8)

    7、错误处理机制 1)、SpringBoot默认的错误处理机制 默认效果: ​ 1)、浏览器,返回一个...

  • Golang学习笔记之错误处理error、panic (抛出错误

    一、error 错误表示程序中出现了异常情况。Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 • er...

网友评论

      本文标题:go 错误处理机制

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