zoukankan      html  css  js  c++  java
  • 异常处理

    package main
    
    import (
        "fmt"
        "os"
    )
    
    // 异常处理
    //defer:延迟执行,并且即便程序出现严重错误,也会执行
    //panic:主动抛出异常 raise
    //recover:恢复程序,继续执行
    //
    //func main() {
    //
    //    defer fmt.Println("我最后执行")  //注册一下,并不执行,等main函数执行完了以后,从下往上执行defer定义的东西
    //    defer fmt.Println("我倒数第二个打印")
    //    fmt.Println("我先执行")
    //    //var a []int
    //    //fmt.Println(a[10])
    //    panic("我出错了")
    //    fmt.Println("ccccc")
    //
    //    //假设打开一个文件
    //    //f:=open()
    //    //defer f.close()
    //    //
    //    //出错了
    //    //
    //
    //}
    
    
    //
    //func f1(){
    //    fmt.Println("f1 f1")
    //}
    //func f2(){
    //    defer func() {   //这个匿名函数永远会执行
    //        //error:=recover()  //恢复程序继续执行
    //        //fmt.Println(error) //如果没有错误,执行recover会返回nil    如果有错误,,执行recover会放错误信息
    //        if error:=recover();error!=nil{
    //            //表示出错了,打印一下错误信息,程序恢复了,继续执行
    //            fmt.Println(error)
    //        }
    //        // 相当于finally
    //        fmt.Println("我永远会执行,不管是否出错")
    //    }()
    //    fmt.Println("f2 f2")
    //    //panic("主动抛出错误")
    //}
    //func f3(){
    //    fmt.Println("f3 f3")
    //}
    //
    //func main() {
    //    //捕获异常,处理异常,让程序继续运行
    //
    //    f1()
    //
    //    f2()
    //    f3()
    //}
    
    /*
    try:
        可能会错误的代码
    except Exception as e:
        print(e)
    finally:
        无论是否出错,都会执行
     */
    /*现在这么写
    defer func() {
        if error:=recover();error!=nil{
            //except的东西
            fmt.Println(error)
        }
        //相当于finally,无论是否出错,都会执行
    }()
    可能会错误的代码
     */
    
    
    // go的错误处理
    func main() {
        f, err := os.Open("/test.txt")
        if err != nil {
            fmt.Println(err)
            return
        }
    
        if err != nil {
            fmt.Println(err)
            return
        }
    
    
        fmt.Println(f.Name(), "opened successfully")
    }
  • 相关阅读:
    (八)断路器-Hystrix
    WINDOWS SERVER 2012 虚拟机 忘记密码后
    IIS FTP :在组合的密钥属性“users,roles,permissions”分别设置为“*,Read,Write”时,无法添加类型为“add”的重复集合项
    log4j 日志组件
    IDEA缓存
    com.alibaba.druid.pool.DruidDataSource
    EHCache CacheManager
    webservice调试(XML参数) Wizdler PostMan
    jar类库加载顺序
    JAXB工具
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14886780.html
Copyright © 2011-2022 走看看