为了账号安全,请及时绑定邮箱和手机立即绑定

Go语言的异常处理之errors,panic, recover

标签:
Go


error接口:源码

Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型,该接口的定义如下:

type error interface {

    Error() string

}

Go语言的标准库代码包errors为用户提供如下方法:

package errors

type errorString struct { 

    text string 

}

func New(text string) error { 

    return &errorString{text} 

}

func (e *errorString) Error() string { 

    return e.text 

}

另一个可以生成error类型值的方法是调用fmt包中的Errorf函数:

package fmt

import "errors"

func Errorf(format string, args ...interface{}) error {

    return errors.New(Sprintf(format, args...))

}

示例:

// code_027_error_panic_recover project main.go

package main

import (

    "errors"

    "fmt"

)

//Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型,New, Error, Errorf方法

func Divide(a, b float64) (result float64, err error) {

    if b == 0 {

        result = 0.0

        err = errors.New("runtime error:divide by zezo")

        return

    }

    result = a / b

    err = nil

    return

}

func main() {

    var err1 error = errors.New("a normal err1")

    fmt.Println(err1)

    var err2 error = fmt.Errorf("%s", "normal err2")

    fmt.Println(err2)

    r, err := Divide(10.0, 0)

    if err != nil {

        fmt.Println(err) //报错,错误处理

    } else {

        fmt.Println(r) //使用返回值

    }

}

未完待续。。。

©著作权归作者所有:来自51CTO博客作者ck_god的原创作品,如需转载,请注明出处,否则将追究法律责任

G


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消