优化错误提示相关代码

This commit is contained in:
刘祥超
2023-08-11 15:26:59 +08:00
parent c098732e51
commit fe00446003
7 changed files with 27 additions and 23 deletions

View File

@@ -5,7 +5,7 @@ package iplibrary
import ( import (
"bytes" "bytes"
"compress/gzip" "compress/gzip"
"errors" "fmt"
"io" "io"
"net" "net"
"os" "os"
@@ -45,7 +45,7 @@ func NewFileDataReader(dataReader io.Reader, password string) (*FileReader, erro
gzReader, err := gzip.NewReader(dataReader) gzReader, err := gzip.NewReader(dataReader)
if err != nil { if err != nil {
return nil, errors.New("create gzip reader failed: " + err.Error()) return nil, fmt.Errorf("create gzip reader failed: %w", err)
} }
reader, err := NewReader(gzReader) reader, err := NewReader(gzReader)

View File

@@ -4,6 +4,7 @@ package iplibrary
import ( import (
"errors" "errors"
"fmt"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
"io" "io"
@@ -76,7 +77,7 @@ func (this *Updater) Init() error {
return nil return nil
} }
return errors.New("read ip library file failed '" + err.Error() + "'") return fmt.Errorf("read ip library file failed '%w'", err)
} }
defer func() { defer func() {
_ = fp.Close() _ = fp.Close()
@@ -167,7 +168,7 @@ func (this *Updater) Loop() error {
// write to file // write to file
fp, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666) fp, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
if err != nil { if err != nil {
return errors.New("create ip library file failed: " + err.Error()) return fmt.Errorf("create ip library file failed: %w", err)
} }
var isOk = false var isOk = false
@@ -195,7 +196,7 @@ func (this *Updater) Loop() error {
err = this.loadFile(fp) err = this.loadFile(fp)
_ = fp.Close() _ = fp.Close()
if err != nil { if err != nil {
return errors.New("load file failed: " + err.Error()) return fmt.Errorf("load file failed: %w", err)
} }
isOk = true isOk = true
@@ -215,7 +216,7 @@ func (this *Updater) loadFile(fp *os.File) error {
fileReader, err := NewFileDataReader(fp, "") fileReader, err := NewFileDataReader(fp, "")
if err != nil { if err != nil {
return errors.New("load ip library from reader failed: " + err.Error()) return fmt.Errorf("load ip library from reader failed: %w", err)
} }
var reader = fileReader.RawReader() var reader = fileReader.RawReader()
@@ -227,7 +228,7 @@ func (this *Updater) loadFile(fp *os.File) error {
func (this *Updater) createDefaultFile(sourcePath string, dir string) error { func (this *Updater) createDefaultFile(sourcePath string, dir string) error {
sourceFp, err := os.Open(sourcePath) sourceFp, err := os.Open(sourcePath)
if err != nil { if err != nil {
return errors.New("prepare to copy file to 'ip-library.db' failed: " + err.Error()) return fmt.Errorf("prepare to copy file to 'ip-library.db' failed: %w", err)
} }
defer func() { defer func() {
_ = sourceFp.Close() _ = sourceFp.Close()
@@ -235,14 +236,14 @@ func (this *Updater) createDefaultFile(sourcePath string, dir string) error {
dstFp, err := os.Create(dir + "/ip-library.db") dstFp, err := os.Create(dir + "/ip-library.db")
if err != nil { if err != nil {
return errors.New("prepare to copy file to 'ip-library.db' failed: " + err.Error()) return fmt.Errorf("prepare to copy file to 'ip-library.db' failed: %w", err)
} }
defer func() { defer func() {
_ = dstFp.Close() _ = dstFp.Close()
}() }()
_, err = io.Copy(dstFp, sourceFp) _, err = io.Copy(dstFp, sourceFp)
if err != nil { if err != nil {
return errors.New("copy file to 'ip-library.db' failed: " + err.Error()) return fmt.Errorf("copy file to 'ip-library.db' failed: %w", err)
} }
return nil return nil
} }

View File

@@ -4,6 +4,7 @@ package langs
import ( import (
"errors" "errors"
"fmt"
"github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/configutils"
"strings" "strings"
) )
@@ -51,7 +52,7 @@ func (this *Lang) Compile() error {
for code, oldMessage := range this.messageMap { for code, oldMessage := range this.messageMap {
message, err := this.get(code, 0) message, err := this.get(code, 0)
if err != nil { if err != nil {
return errors.New("compile '" + string(code) + "': '" + oldMessage + "' failed: " + err.Error()) return fmt.Errorf("compile '%s': '%s' failed: %w", string(code), oldMessage, err)
} }
this.messageMap[code] = message this.messageMap[code] = message
} }

View File

@@ -6,6 +6,7 @@ import (
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt"
"github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/maps"
"time" "time"
) )
@@ -26,7 +27,7 @@ func EncryptMap(nodeUniqueId string, nodeSecret string, data maps.Map, timeout i
"data": data, "data": data,
}) })
if err != nil { if err != nil {
return "", errors.New("marshal data to json failed: " + err.Error()) return "", fmt.Errorf("marshal data to json failed: %w", err)
} }
var method = &AES256CFBMethod{} var method = &AES256CFBMethod{}
@@ -52,7 +53,7 @@ func DecryptMap(nodeUniqueId string, nodeSecret string, encodedString string) (m
encodedData, err := base64.StdEncoding.DecodeString(encodedString) encodedData, err := base64.StdEncoding.DecodeString(encodedString)
if err != nil { if err != nil {
return nil, errors.New("base64 decode failed: " + err.Error()) return nil, fmt.Errorf("base64 decode failed: %w", err)
} }
dataJSON, err := method.Decrypt(encodedData) dataJSON, err := method.Decrypt(encodedData)
@@ -63,7 +64,7 @@ func DecryptMap(nodeUniqueId string, nodeSecret string, encodedString string) (m
var result = maps.Map{} var result = maps.Map{}
err = json.Unmarshal(dataJSON, &result) err = json.Unmarshal(dataJSON, &result)
if err != nil { if err != nil {
return nil, errors.New("unmarshal data failed: " + err.Error()) return nil, fmt.Errorf("unmarshal data failed: %w", err)
} }
var expiresAt = result.GetInt64("expiresAt") var expiresAt = result.GetInt64("expiresAt")
@@ -107,7 +108,7 @@ func DecryptData(nodeUniqueId string, nodeSecret string, encodedString string) (
encodedData, err := base64.StdEncoding.DecodeString(encodedString) encodedData, err := base64.StdEncoding.DecodeString(encodedString)
if err != nil { if err != nil {
return nil, errors.New("base64 decode failed: " + err.Error()) return nil, fmt.Errorf("base64 decode failed: %w", err)
} }
return method.Decrypt(encodedData) return method.Decrypt(encodedData)

View File

@@ -3,7 +3,7 @@
package errors package errors
import ( import (
"errors" "fmt"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
"strings" "strings"
@@ -20,13 +20,13 @@ func HumanError(err error, endpoints []string, configFile string) (resultErr err
} }
switch errStatus.Code() { switch errStatus.Code() {
case codes.InvalidArgument: case codes.InvalidArgument:
return errors.New("错误的RPC参数" + err.Error()), false return fmt.Errorf("错误的RPC参数%w", err), false
case codes.DeadlineExceeded: case codes.DeadlineExceeded:
return errors.New("RPC操作超时请重试" + err.Error()), false return fmt.Errorf("RPC操作超时请重试%w", err), false
case codes.Unimplemented: case codes.Unimplemented:
return errors.New("请求的RPC服务或方法不存在可能是没有升级API节点或者当前节点没有升级" + err.Error()), false return fmt.Errorf("请求的RPC服务或方法不存在可能是没有升级API节点或者当前节点没有升级%w", err), false
case codes.Unavailable: case codes.Unavailable:
return errors.New("RPC当前不可用<br/>1、请确认当前节点的api.yaml<em>" + configFile + "</em>)配置中的地址(<em>" + strings.Join(endpoints, ", ") + "</em>)是否已填写正确;<br/>2、请确保API节点已启动并检查当前节点和API节点之间的网络连接是正常的。<hr/>错误信息:" + err.Error()), true return fmt.Errorf("RPC当前不可用<br/>1、请确认当前节点的api.yaml<em>%s</em>)配置中的地址(<em>%s</em>)是否已填写正确;<br/>2、请确保API节点已启动并检查当前节点和API节点之间的网络连接是正常的。<hr/>错误信息:%w", configFile, strings.Join(endpoints, ", "), err), true
} }
return err, false return err, false

View File

@@ -1,7 +1,7 @@
package firewallconfigs package firewallconfigs
import ( import (
"errors" "fmt"
"regexp" "regexp"
"strings" "strings"
) )
@@ -28,12 +28,12 @@ func (this *HTTPFirewallRule) Init() error {
case HTTPFirewallRuleOperatorMatch: case HTTPFirewallRuleOperatorMatch:
_, err := regexp.Compile(this.Value) _, err := regexp.Compile(this.Value)
if err != nil { if err != nil {
return errors.New("regexp validate failed: " + err.Error() + ", expression: " + this.Value) return fmt.Errorf("regexp validate failed: %w, expression: %s", err, this.Value)
} }
case HTTPFirewallRuleOperatorNotMatch: case HTTPFirewallRuleOperatorNotMatch:
_, err := regexp.Compile(this.Value) _, err := regexp.Compile(this.Value)
if err != nil { if err != nil {
return errors.New("regexp validate failed: " + err.Error() + ", expression: " + this.Value) return fmt.Errorf("regexp validate failed: %w, expression: %s", err, this.Value)
} }
} }

View File

@@ -6,6 +6,7 @@ import (
"crypto/x509" "crypto/x509"
"encoding/pem" "encoding/pem"
"errors" "errors"
"fmt"
"github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/configutils"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
"github.com/iwind/TeaGo/lists" "github.com/iwind/TeaGo/lists"
@@ -112,7 +113,7 @@ func (this *SSLCertConfig) Init(ctx context.Context) error {
} else { // 证书+私钥 } else { // 证书+私钥
cert, err := tls.X509KeyPair(this.CertData, this.KeyData) cert, err := tls.X509KeyPair(this.CertData, this.KeyData)
if err != nil { if err != nil {
return errors.New("load certificate '" + strconv.FormatInt(this.Id, 10) + "' failed:" + err.Error()) return fmt.Errorf("load certificate '%s' failed: %w", strconv.FormatInt(this.Id, 10), err)
} }
for index, data := range cert.Certificate { for index, data := range cert.Certificate {