Go语言之错误处理

wx57f63dceec388 · · 619 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

参考链接: Go语言-错误处理

错误处理机制 

 

 当程序发生错误,程序就会崩溃,所以,引进错误处理机制,当发生错误后,可以捕获错误,并进行处理,保证程序正常执行,并返回给管理员错误的信息提示。 

 

异常处理 

 

 Go中抛出一个panic的异常,然后在关键字defer中通过recover()函数捕获这个异常,最后正常处理。 

 defer语句的作用是不管程序是否出现异常,均在函数退出时自动执行相关代码。 

 

程序案例 

package main

import (

    "fmt"

)


func test() {

    // 使用defer + recover 来捕获异常

    defer func() {

        // recover()内置函数,可以捕获异常

        err := recover()

        // 说明捕获异常的错误

        if err != nil {

            fmt.Println("err=", err)

        }

    }

    num1 := 10

    num2 := 0

    res := num1 / num2

    fmt.Println("res=", res)

}


func main() {

    test()

}

 

自定义错误 

 

 error类型是go语言的一种内置类型,是一个接口。 

 errors.New(“错误说明”),会返回一个error类型的值,表示一个错误 

 panic()内置函数,接收一个interface{}类型的值 作为参数,可接收error类型的变量,输出错误信息,并退出程序 

 

程序案例 

package main

import "fmt"



func readConf(name string) error {

    if name == "config.ini" {

        return nil

    } else {

        return errors.New("读取文件错误")

    }

}


func main() {

    err := readConf("config1.ini")

    if err != nil {

        panic(err)

    } else {

        fmt.Println("继续执行")

    }

    

    fmt.Println("main函数继续执行")   

}



有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:wx57f63dceec388

查看原文:Go语言之错误处理

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

619 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传