GO语言标准错误处理机制error用法实例 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    这篇文章主要介绍了GO语言标准错误处理机制error用法,实例分析了错误处理机制的具体用法,具有一定的参考借鉴价值,需要的朋友可以参考下

    本文实例讲述了GO语言标准错误处理机制error用法,

GO语言标准错误处理机制error用法实例

。分享给大家供大家参考。具体分析如下:

    在 Golang 中,错误处理机制一般是函数返回时使用的,是对外的接口,而异常处理机制 panic-recover 一般用在函数内部。

    error 类型介绍

    error 类型实际上是抽象了 Error() 方法的 error 接口,Golang 使用该接口进行标准的错误处理。

    代码如下:

    type error interface {

    Error() string

    }

    一般情况下,如果函数需要返回错误,就将 error 作为多个返回值中的最后一个(但这并非是强制要求)。参考模型:

    代码如下:

    func Foo(param int) (n int, err error) {

    // ...

    }

    if n, err := Foo(0); err != nil {

    // 错误处理

    }

    这就是 error 的使用方法,与其他语言的异常相比,Golang 的方法相对更加容易、直观。

    代码1:经典使用方法

   

    代码如下:

    package main

    import (

    "errors"

    "fmt"

    )

    func requireDual(n int) (int, error) {

    if n&1 == 1 {

    return -1, errors.New("您输入不是双数") //生成一个简单的 error 类型

    }

    return n, nil

    }

    func main() {

    if result, err := requireDual(101); err != nil {

    fmt.Println("错误:", err)

    } else {

    fmt.Println("结果:", result)

    }

    }

    输出结果:

    错误: 您输入不是双数

    你有没有觉得 Golang 的这种错误的处理机制非常的简洁啊,呵呵!

    代码2:扩充下上面的代码,带自定义参数的错误输出

   

    代码如下:

    package main

    import (

    "fmt"

    )

    type dualError struct {

    Num    int

    problem string

    }

    func (e dualError) Error() string {

    return fmt.Sprintf("参数不正确,因为\"%d\"不是双数", e.Num)

    }

    func requireDual(n int) (int, error) {

    if n&1 == 1 {

    return -1, dualError{Num: n}

    }

    return n, nil

    }

    func main() {

    if result, err := requireDual(101); err != nil {

    fmt.Println("错误:", err)

    } else {

    fmt.Println("结果:", result)

    }

    }

    输出结果

    错误: 参数不正确,因为"101"不是双数

    希望本文所述对大家的GO语言程序设计有所帮助,

电脑资料

GO语言标准错误处理机制error用法实例》(https://www.unjs.com)。

最新文章