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()
    }
     
  • 相关阅读:
    软件测试初探
    weiPHPOneThink1.0开发手册
    关于.aspx与.aspx.cs的关系
    佩服的牛人
    当客户说“没钱”,我该怎么应对?
    weiphp 简介笔记
    FlashFXP、LeapFTP、CuteFTP 等FTP软件二进制上传或下载方法
    集体智慧编程(一)
    Sargur Srihari 的两个课程 ML和DM
    一个神人Hoifung Poon
  • 原文地址:https://www.cnblogs.com/itsuibi/p/14459513.html
Copyright © 2011-2022 走看看