第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Go中調(diào)用os.Open(<filename>)時(shí)如何檢查錯(cuò)誤?

在Go中調(diào)用os.Open(<filename>)時(shí)如何檢查錯(cuò)誤?

Go
鴻蒙傳說 2021-04-27 17:49:54
我是Go語言的新手(到目前為止已花費(fèi)30分鐘?。?,并且正在嘗試執(zhí)行文件I / O。  file, ok := os.Open("../../sample.txt")  if ok != nil {    // error handling code here    os.Exit(1)  }  ... 當(dāng)呼叫失敗時(shí),它不應(yīng)該返回錯(cuò)誤號(hào)嗎?該調(diào)用返回os.Error,除了'String()'之外沒有其他方法。這是檢查Go中錯(cuò)誤的推薦方法嗎?
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

典型的Go代碼(使用該os程序包)沒有分析返回的錯(cuò)誤對(duì)象。它只是將錯(cuò)誤消息打印給用戶(然后,用戶根據(jù)打印的消息知道出了什么問題),或者將錯(cuò)誤原樣返回給調(diào)用者。


如果要阻止程序打開不存在的文件,或者要檢查文件是否可讀/可寫,我建議在打開文件之前使用os.Stat函數(shù)。


您可以分析返回錯(cuò)誤的Go類型,但這似乎很不方便:


package main


import "fmt"

import "os"


func main() {

    _, err := os.Open("non-existent")

    if err != nil {

        fmt.Printf("err has type %T\n", err)

        if err2, ok := err.(*os.PathError); ok {

            fmt.Printf("err2 has type %T\n", err2.Error)

            if errno, ok := err2.Error.(os.Errno); ok {

                fmt.Fprintf(os.Stderr, "errno=%d\n", int64(errno))

            }

        }


        fmt.Fprintf(os.Stderr, "%s\n", err)

        os.Exit(1)

    }

}

打?。?/p>


err has type *os.PathError

err2 has type os.Errno

errno=2

open non-existent: no such file or directory


查看完整回答
反對(duì) 回復(fù) 2021-05-10
  • 2 回答
  • 0 關(guān)注
  • 363 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)