golang中自定义实现0当做除数的错误异常处理接口
package main import "fmt" type ZeroDivisor struct { // 定义一个0当做除数的结构体 divisor int // 被除数 divider int // 除数 } func (zd *ZeroDivisor) Error() string { // 实现Error接口 strFormat := ` the divider is zero divisor: %d divider: 0 ` return fmt.Sprintf(strFormat, zd.divisor) } func Divide(divisor, divider int) (result int, errMsg string) { // 定义int类型书法运算的函数 if divider == 0 { zero := ZeroDivisor{divisor: divisor, divider: divider} errMsg = zero.Error() return } else { return divisor / divider, "" } } func main() { // 正常情况 if result, errMsg := Divide(100,20); errMsg == "" { fmt.Println("100 / 20 =", result) } // 当除数为0时返回的错误信息 if _, errMsg := Divide(100, 0); errMsg != "" { fmt.Println("errMsg是:", errMsg) } }