我正在Go.my程序中編寫CLI接口程序,要求用戶輸入文件名作爲參數。以下是我寫的處理 用戶不輸入任何參數的情況的代碼。但它恐慌,並給出了一個錯誤「索引超出範圍」。我該如何處理?golang:我如何處理索引超出範圍的錯誤?
package main
import (
"encoding/hex"
"fmt"
"io/ioutil"
"log"
"os"
)
func main() {
if len(os.Args) == 0 {
fmt.Println("usage: gohex <filename>")
os.Exit(1)
} else {
filename := os.Args[1]
data, err := ioutil.ReadFile(filename)
if err != nil {
log.Fatal(err)
}
fmt.Println(hex.Dump(data))
}
}
請告訴我們完整的代碼。目前的片段不能恐慌。 –
我無法重現此問題。你確定你在這個代碼中出現這個錯誤嗎? –
在Go中與C一樣,可執行路徑作爲參數列表的第一個參數傳遞。所以你必須檢查一下len == 1 – Warrior