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("打印出错")
        }
    }
  • 相关阅读:
    Div+Css布局教程(-)CSS必备知识
    html表格设置
    wxAui Frame Management用法
    aui
    MySQL死锁
    InnoDB索引存储结构
    MySQL事务调优
    MySQL慢SQL语句常见诱因
    InnoDB的LRU淘汰策略
    InnoDB事务之redo log工作原理
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12031772.html
Copyright © 2011-2022 走看看