优化error输出

This commit is contained in:
algotao
2026-01-11 17:24:11 +08:00
parent 5e102ea8e7
commit 369023b81d
45 changed files with 304 additions and 552 deletions

View File

@@ -34,8 +34,7 @@ func RunWrite(args ...string) error {
clear := paramClear(fs)
if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
return err
return fmt.Errorf("Command line parse error: %w", err)
}
if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*ds) == 0 {
@@ -43,15 +42,14 @@ func RunWrite(args ...string) error {
return nil
}
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 {
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid")
if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
fmt.Fprintln(os.Stderr, "appid must be set when data space is wuid")
return nil
}
cfg, err := LoadConfigFile(*cfgFile)
if err != nil {
fmt.Fprintln(os.Stderr, "load config file error", "err", err)
return err
return fmt.Errorf("LoadConfigFile error: %w", err)
}
writeParams := writeParams{
@@ -74,8 +72,7 @@ func RunWrite(args ...string) error {
func doWrite(writeParams writeParams) error {
fsInfo, err := os.Stat(writeParams.sourcePath)
if err != nil {
fmt.Fprintln(os.Stderr, "file stat error", "err", err)
return err
return fmt.Errorf("file stat error: %w", err)
}
if !fsInfo.IsDir() {
@@ -86,8 +83,7 @@ func doWrite(writeParams writeParams) error {
// 读取目录下信息
dirEntry, err := os.ReadDir(writeParams.sourcePath)
if err != nil {
fmt.Fprintln(os.Stderr, "read dir error", "err", err)
return err
return fmt.Errorf("read dir error: %w", err)
}
// 遍历目录
@@ -107,8 +103,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
// 读取文件并按行遍历,以\t分割为两列第一列为userid第二列解析为string数组
file, err := os.Open(writeParams.sourcePath)
if err != nil {
fmt.Fprintln(os.Stderr, "open file error", "file", writeParams.sourcePath, "err", err)
return err
return fmt.Errorf("open file error: %w. file: %v", err, writeParams.sourcePath)
}
defer file.Close()
@@ -127,8 +122,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
}
saasWriteItem := &saasapi.WriteItem{}
if err = protojson.Unmarshal([]byte(line), saasWriteItem); err != nil {
fmt.Fprintln(os.Stderr, "protojson unmashal error", "file", writeParams.sourcePath, "line", total, "err", err)
return err
return fmt.Errorf("protojson unmashal error: %w. file: %v line: %v", err, writeParams.sourcePath, total)
}
saasWriteItems = append(saasWriteItems, saasWriteItem)
@@ -171,15 +165,12 @@ func submitWrite(writeParams writeParams, saasWriteCmds []*saasapi.WriteItem) (e
write.WriteItems = saasWriteCmds
res, err := writeParams.saasHttp.Write(saasReq)
if err != nil {
fmt.Fprintln(os.Stderr, "submit write error", "err", err)
return
return 0, fmt.Errorf("Submit Command error: %w", err)
}
if res.GetCode() != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("write failed. code:%v, status:%v", res.GetCode(), res.GetStatus())
fmt.Fprintln(os.Stderr, protojson.Format(res))
return
}