У меня есть следующий базовый c код, который проверяет 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
).