• 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()
    }
     
  • 相关阅读:
    pat 1029. Median (25)
    pat 1040. Longest Symmetric String (25)
    pat 1037. Magic Coupon (25)
    pat 1058. A+B in Hogwarts (20)
    pat 1083. List Grades (25)
    pat 1054. The Dominant Color (20)
    pat 1042. Shuffling Machine (20)
    pat 1061. Dating (20)
    *分支-11. 计算工资
    分支-10. 计算个人所得税
  • 原文地址:https://www.cnblogs.com/itsuibi/p/14459513.html
Copyright © 2020-2023  润新知