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()
    }
     
  • 相关阅读:
    微服务-1初识
    RESTful-5开发API
    RESTful-4使用教程
    RESTful-3架构详解
    RESTful-2一分钟理解什么是REST和RESTful
    RESTful-1概述
    Swagger-概述
    net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-2项目搭建
    net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明
    (大数 startsWith substring) Exponentiation hdu1063
  • 原文地址:https://www.cnblogs.com/itsuibi/p/14459513.html
Copyright © 2011-2022 走看看