美文网首页
第05天(异常、文本文件处理)_01

第05天(异常、文本文件处理)_01

作者: lucas777 | 来源:发表于2020-01-14 17:28 被阅读0次

    01_error接口的使用.go

    package main
    
    import "fmt"
    import "errors"
    
    func main() {
        //var err1 error = fmt.Errorf("%s", "this is normol err")
        err1 := fmt.Errorf("%s", "this is normal err1")
        fmt.Println("err1 = ", err1)
    
        err2 := errors.New("this is normal err2")
        fmt.Println("err2 = ", err2)
    }
    

    02_error接口应用.go

    package main
    
    import "fmt"
    import "errors"
    
    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(10, 0)
        if err != nil {
            fmt.Println("err = ", err)
        } else {
            fmt.Println("reslut = ", result)
        }
    }
    

    03_显式调用panic函数.go

    package main
    
    import "fmt"
    
    func testa() {
        fmt.Println("aaaaaaaaaaaaaaaaa")
    }
    func testb() {
        //fmt.Println("bbbbbbbbbbbbbbbbbbbb")
        //显式调用panic函数,导致程序中断
        panic("this is a panic test")
    }
    func testc() {
        fmt.Println("cccccccccccccccccc")
    }
    func main() {
        testa()
        testb()
        testc()
    }
    

    04_数组越界到导致panic.go

    package main
    
    import "fmt"
    
    func testa() {
        fmt.Println("aaaaaaaaaaaaaaaaa")
    }
    func testb(x int) {
        var a [10]int
        a[x] = 111 //当x为20时候,导致数组越界,产生一个panic,导致程序崩溃
    }
    func testc() {
        fmt.Println("cccccccccccccccccc")
    }
    func main() {
        testa()
        testb(20)
        testc()
    }
    

    05_recover的使用.go

    package main
    
    import "fmt"
    
    func testa() {
        fmt.Println("aaaaaaaaaaaaaaaaa")
    }
    func testb(x int) {
        //设置recover
        defer func() {
            //recover() //可以打印panic的错误信息
            //fmt.Println(recover())
            if err := recover(); err != nil { //产生了panic异常
                fmt.Println(err)
            }
    
        }() //别忘了(), 调用此匿名函数
    
        var a [10]int
        a[x] = 111 //当x为20时候,导致数组越界,产生一个panic,导致程序崩溃
    }
    func testc() {
        fmt.Println("cccccccccccccccccc")
    }
    func main() {
        testa()
        testb(20)
        testc()
    }
    

    相关文章

      网友评论

          本文标题:第05天(异常、文本文件处理)_01

          本文链接:https://www.haomeiwen.com/subject/mruaactx.html