美文网首页
Go语言 错误处理

Go语言 错误处理

作者: 小杰的快乐时光 | 来源:发表于2018-08-18 23:01 被阅读0次

    error类型是一个接口类型

    type error interface {
        Error() string
    }
    

    实例分析

    //定义一个Error结构
    type DivideError struct {
       dividee int  //除数
       divider int  //被除数
    }
    
    //实现 error 接口
    func (de *DivideError)Error()string  {
       //规定错误的格式
       strFormat := `  
        Cannot proceed, the divider is zero.
        dividee: %d
        divider: 0
    `
       return fmt.Sprintf(strFormat,de.dividee)
    }
    
    //定义 int 类型除法运算的函数
    func Divide(varDividee int, varDivider int)(result int, errorMsg string)   {
       if varDivider == 0 {
          dData := DivideError{
             dividee: varDividee,
             divider: varDivider,
          }
          errorMsg = dData.Error()
          return
       }else {
          return varDividee/varDivider,""
       }
    }
    
    func main() {
       //正常情况
       if result,errorMsg :=Divide(100,10);errorMsg =="" {
          fmt.Println("100/10 = ",result)
       }
       //当被除数为零的时候会返回错误信息
       if _,errorMsg := Divide(100,0);errorMsg!= "" {
          fmt.Println("errorMsg is: ",errorMsg)
       }
    }
    

    相关文章

      网友评论

          本文标题:Go语言 错误处理

          本文链接:https://www.haomeiwen.com/subject/fseqiftx.html