gpt4 book ai didi

go - 如何检查从函数(strconv.Atoi)返回的err类型

转载 作者:行者123 更新时间:2023-12-01 22:42:29 26 4
gpt4 key购买 nike

我有以下测试strconv.Atoi()的基本代码:

package main

import (
"fmt"
"strconv"
)

func main() {

var a int
var b string
var err Error

b = "32"

a,err = strconv.Atoi(b)

fmt.Println(a)
fmt.Println(err)

}
我想处理 strconv.Atoi()中是否存在错误,特别是如果该错误是由于语法或范围以及 strconv.Atoi()可以提供的条件引起的。为此,我尝试了以下方法:
package main

import (
"os"
"fmt"
"strconv"
)

func main() {

var a int
var b string
var err error

b = "32"

a,err = strconv.Atoi(b)

if(err.Err == ErrSyntax) {
fmt.Println("ERROR")
os.Exit(1)
}

fmt.Println(a)
fmt.Println(err)

}
我得到这个结果:
% go build test.go
# command-line-arguments
./test.go:19:8: err.Err undefined (type error has no field or method Err)
./test.go:19:16: undefined: ErrSyntax
我想了解如何处理 Atoi可以返回的两个错误( ErrSyntaxErrRange)。

最佳答案

您可以使用 errors 包(Working with Errors in Go 1.13):

if errors.Is(err, strconv.ErrSyntax) {
fmt.Println("syntax error")
os.Exit(1)
}

关于go - 如何检查从函数(strconv.Atoi)返回的err类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63234360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com