package main
import "fmt"
// go的错误处理
// go中内置了错误接口,所以error类型是一个接口类型,定义如下
/*
type error interface {
Error() string
}
*/
// 编码中主要通过error接口来生成错误信息,在日常使用中通常在函数的最后返回值那里返回错误信息
// 主要使用errors.New()来返回错误信息
type DivideError struct {
beichushu int
chushu int
}
func (de *DivideError) Error() string {
strFormat := "Cannot proceed, the divider is zero.beichushu:%d, chushu:0"
return fmt.Sprintf(strFormat, de.beichushu) // 这里的sprintf是与c语言类似的标准输出
}
func Divide(bcs int, cs int) (result int, errorMsg string) {
if(cs == 0) {
data := DivideError{
beichushu : bcs,
chushu : cs,
}
errorMsg = data.Error()
return
}else{
return bcs / cs, ""
}
}
func main() {
// 正常情况
var ret int
var errorMsg string
ret, errorMsg = Divide(100, 10)
if(errorMsg == "") {
fmt.Println(ret)
}else{
fmt.Println(errorMsg)
}
ret, errorMsg = Divide(100, 0)
if(errorMsg == "") {
fmt.Println(ret)
}else{
fmt.Println(errorMsg)
}
}
【Golang】13.用代码形式总结go的错误处理
最新推荐文章于 2023-12-25 16:51:12 发布