我们有,
软件包strconv
var ErrRange = errors.New("value out of range")ErrRange指示值超出目标类型的范围。
type NumError struct { Func string // the failing function (ParseBool, ParseInt,ParseUint, ParseFloat)
Num string // the input
Err error // the reason the conversion failed (ErrRange,
ErrSyntax)
}一个NumError记录一个失败的转换。
func (e *NumError) Error() string
例如,
package main import ( "fmt" "strconv" ) func main() { iv, err := strconv.ParseInt("18446744073709551448", 10, 64) if err != nil { if numError, ok := err.(*strconv.NumError); ok { if numError.Err == strconv.ErrRange { fmt.Println("Detected", numError.Num, "as a", strconv.ErrRange) return } } fmt.Println(err) return } fmt.Println(iv) }输出:
检测到18446744073709551448为超出范围的值



