错误处理
错误和异常不同,错误是在程序中正常存在的,可以预知的失败在意料之中。而异常通常指在不应该出现问题的地方出现问题,比如空指针,这在人们的意料之外。go语言没有try......catch这样的方式来捕获异常所以Go定义属于自己的一种错误类型,用error表示错误。
package main
import (
"errors"
"fmt"
)
func main() {
err := errors.New("错误信息")
fmt.Println(err) // 输出:错误信息
num, err2 := Calc(0)
fmt.Println(num, err2) // 输出:0 除数不能为0
}
// 通过内置errors包创建错误对象来返回
func Calc(divisor int) (int, error) {
if divisor == 0 {
return 0, errors.New("除数不能为0")
}
return 100 / divisor, nil
}