【发布时间】:2020-08-03 17:39:15
【问题描述】:
我有以下测试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可以返回的两个错误(ErrSyntax,ErrRange)。
【问题讨论】: