GO语言:错误处理

35 阅读1分钟
package main

import "fmt"

type divideError struct {
	divdee int
	divider int
}

func (de *divideError)Error() string {
	strFormat := "wrong: divider == %d"
	return fmt.Sprintf(strFormat, de.divider)
}

func divide(divdee int, divider int) (result int, errorMsg string) {
	if divider == 0 {
		errorData := divideError{divdee, divider}
		errorMsg = errorData.Error()
		return
	}else {
		return divdee / divider, "ok"
	}
}

func main() {
	if result, errorMsg := divide(100,10) ; errorMsg == "ok"{
		fmt.Println(result)
	}

	if _, errorMsg := divide(100,0) ; errorMsg != "ok"{
		fmt.Println(errorMsg )
	}
}