zoukankan      html  css  js  c++  java
  • golang学习笔记——异常

    自定义异常的两种方式
    package main
     
    import (
        "errors"
        "fmt"
    )
     
    func main() {
        //使用fmt.Errorf
        err1 := fmt.Errorf("%s", "this is normal error")
        fmt.Println(err1)
        //使用errors
        err2 := errors.New("this is a not param error")
        fmt.Println(err2)
    }
    • 应用
    package main
     
    import (
        "errors"
        "fmt"
    )
     
    func MyDiv(a, b int) (result int, err error) {
        err = nil
        if b == 0 {
             err = errors.New("分母不能为0")
        } else {
             result = a / b
        }
        return
    }
     
    func main() {
        result, err := MyDiv(6, 0)
        if err == nil {
            fmt.Println("result = ", result)
        } else {
            fmt.Println(err)
        }
    }
     
    panic函数的使用
    • 会终止程序的运行
    package main
     
    import (
        "fmt"
    )
     
    func test1() {
        fmt.Println("11111111111")
    }
     
    func test2() {
        fmt.Println("222222222222")
        panic("this is a panic error")
    }
     
    func test3() {
        fmt.Println("333333333333")
    }
     
    func main() {
        test1()
        test2()
        test3()
    }
     
     
    recover函数的使用(防止引起panic错误时导致程序终止)
    • 只能放到defer函数中使用
    package main
     
    import (
        "fmt"
    )
     
    func test1() {
        fmt.Println("11111111111")
    }
     
    func test2(x int) {
        defer func() {
             if err := recover(); err != nil {
                 fmt.Println(err)
             }
        }()
        var a [10]int
        a[x] = 20
    }
     
    func test3() {
        fmt.Println("333333333333")
    }
     
    func main() {
        test1()
        test2(20)
        test3()
    }
     
  • 相关阅读:
    C#使用SSDB管理增量日志并提供查询
    请假系统特例规则详细设计
    2014年国内最热门的.NET开源平台
    MQTT--入门
    转MQTT--Python进行发布、订阅测试
    Python修改文件权限
    Python Windows文件操作
    python random 学习
    Python---copy()、deepcopy()与赋值的区别
    使用Git Bash从Git上下载代码到本地以及上传代码到码云Git
  • 原文地址:https://www.cnblogs.com/itsuibi/p/14459513.html
Copyright © 2011-2022 走看看