zoukankan      html  css  js  c++  java
  • go语言基础异常处理

    异常处理模板

    package main
    
    import "fmt"
    
    //异常处理
    //defer  panic  recover
    //defer 表示延迟调用,即便程序出现严重错误,也会执行
    //panic  就是python中的raise(主动抛出异常)
    //recover 恢复程序,继续执行
    func main() {
        //先注册,后调用
        //defer fmt.Println("xxxx")
        //defer fmt.Println("yyy")
        f1()
        f2()
    
        f3()
    
    }
    
    func f1()  {
        fmt.Println("f1...")
    }
    
    func f2()  {
        defer func() {
            if a:=recover();a!=nil{
                //a 如果不等于nil,表示程序出了异常,a 就是异常信息
                //a 等于nil,表示没有异常
                //fmt.Println("出错了")
                fmt.Println(a)
            }
            //用于会被执行(相当于finally)
    
        }()
        fmt.Println("f2...")
        //var a =make([]int,3,3)
        //fmt.Println(a[4])
        panic("你给我出去")
    }
    func f3()  {
    
        fmt.Println("f3...")
    }

    函数异常:

    package main
    
    import (
        "errors"
        "fmt"
    )
    
    //错误
    
    func circleArea(radius int) (int, error) {
        if radius < 0 {
            return 0, errors.New("错误信息")
            //panic("xddd")
        }
        return 100, nil
    }
    
    func main() {
        a,_:=circleArea(-10)
        if err!=nil{
            fmt.Println(err)
        }
        //fmt.Println(err)
        fmt.Println(a)
        _,err:=fmt.Println()
        if err!=nil{
            fmt.Println("打印出错")
        }
    }
  • 相关阅读:
    4-6 随机数
    linux下安装jdk
    markdown使用教程
    IDE新建gradle各种坑
    day05泛型类和泛型方法
    day05集合
    day15 Ui自动化中三种等待方式
    day15 Ui自动化元素的定位
    Windows系统
    解决sublime text 3使用Install Package时出现There are no packages available for installation问题
  • 原文地址:https://www.cnblogs.com/wukai66/p/12029352.html
Copyright © 2011-2022 走看看