zoukankan      html  css  js  c++  java
  • error、panic、recover、panicking

    错误处理:
    当程序处于错误状态可以用os.Exit(1)来中止运行
    自定义错误:
    err := errors.New("I am error")
    用fmt创建错误(和print一个样,它会创建一个自定义error,字符串就是格式化后的字符串)
    fmt.Errorf("math: square root of negative number %g", f)

    运行时异常与panic

    当发生运行时错误时,Go会触发运行时panic(例如数组下标越界)

    panic也可以从代码中初始化
    panic(MessageString)


    从panic中恢复(Recover)
    recover(接受panic并处理)
    recover(内建函数)被用于从panic中恢复,让程序从panicking中重新获得控制权。
    (panicking,程序执行panic之后的状态)
    recover只能再defer修饰的函数中使用,用来取得panic传递过来的错误值。
    如果正常执行,recover会返回nil。
    func main() {
    defer func(){
    goodWay := recover()//recover接收了panic,并返回panic 的信息。
    fmt.Println(goodWay)
    }()
    panic("I am Panic" )
    }

    自定义包中的错误处理(遵守准则):
    1>在包内部,panic到recover的范围不允许显示的超出包范围。
    2>向包的调用者返回的只能是error而不是panic。

  • 相关阅读:
    Java入门——day28
    第四周进度报告
    Java入门——day27
    Java入门——day26
    Java入门——day25
    Java入门——day24
    Ubuntu创建新用户
    SpringBoot默认的Servlet容器是自带的Tomcat,如何定制和修改配置
    哈希
    找到两张相似的图
  • 原文地址:https://www.cnblogs.com/mcmx/p/11390877.html
Copyright © 2011-2022 走看看