【发布时间】:2022-11-18 03:19:12
【问题描述】:
【问题讨论】:
-
看起来错误类型是
*strconv.NumError,一旦你验证了,那么你可以检查Func -
不确定您使用的是 Go 1.13 还是旧版本,但这值得一读:go.dev/blog/go1.13-errors ... 它解释了
Is和As的区别,您可以比较这些值
标签: go
【问题讨论】:
*strconv.NumError,一旦你验证了,那么你可以检查Func
Is 和 As 的区别,您可以比较这些值
标签: go
https://pkg.go.dev/strconv@go1.19.3#NumError
type NumError struct {
Func string // the failing function (ParseBool, ParseInt, ParseUint, ParseFloat, ParseComplex)
Num string // the input
Err error // the reason the conversion failed (e.g. ErrRange, ErrSyntax, etc.)
}
错误是 ParseInt 类型。
"ParseInt"是“失败的功能”,返回错误的那个。实际的错误类型是*strconv.NumError。您可以像这样检查它和 func 名称:if e, ok := err.(*strconv.NumError); ok && e.Func == "ParseInt" { // do xyz }
【讨论】: