zoukankan      html  css  js  c++  java
  • 15-错误

    错误处理

    在 Go 中,错误一直是很常见的。错误用内建的 error 类型来表示。

    示例

    该程序试图打开一个并不存在的文件

    package main
    import (  
        "fmt"
        "os"
    )
    
    func main() {  
        f, err := os.Open("/test.txt")
        if err != nil {        #判断是否是nil,不是nil就是错误
            fmt.Println(err)   #打印错误信息
            return
        }
        fmt.Println(f.Name(), "opened successfully")
    }

    如果成功打开文件,Open 函数会返回一个文件句柄(File Handler)和一个值为 nil 的错误。而如果打开文件时发生了错误,会返回一个不等于 nil 的错误。

    按照 Go 的惯例,在处理错误时,通常都是将返回的错误与 nil 比较。nil 值表示了没有错误发生,而非 nil 值表示出现了错误

    错误类型的表示

    让我们进一步深入,理解 error 类型是如何定义的error 是一个[接口]类型,定义如下:

    type error interface {  
        Error() string
    }

    error 有了一个签名为 Error() string 的方法。所有实现该接口的类型都可以当作一个错误类型。Error() 方法给出了错误的描述。

    fmt.Println 在打印错误时,会在内部调用 Error() string 方法来得到该错误的描述

  • 相关阅读:
    随手记
    boost::asio::udp 异步
    boost::asio::tcp 异步
    boost::asio::tcp 同步
    QML::MouseArea
    boost::concurrent::sync_queue
    std::chrono::时钟
    数据结构::队列
    数据结构::栈
    数据结构::线性表
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12035875.html
Copyright © 2011-2022 走看看