Tests often check whether an error is returned for invalid input.

Error Checks

error_checks.go
package main

import (
	"errors"
	"fmt"
)

func divide(total int, parts int) (int, error) {
	if parts == 0 {
		return 0, errors.New("parts must not be zero")
	}
	return total / parts, nil
}

func main() {
	var parts = 
	value, err := divide(10, parts)
	hasError := err != nil
	status := "pass"
	if hasError {
		status = "handled"
	}

	fmt.Println("parts=", parts)
	fmt.Println("value=", value)
	fmt.Println("hasError=", hasError)
	fmt.Println("status=", status)
}
package main

import (
	"errors"
	"fmt"
)

func divide(total int, parts int) (int, error) {
	if parts == 0 {
		return 0, errors.New("parts must not be zero")
	}
	return total / parts, nil
}

func main() {
	var parts = 
	value, err := divide(10, parts)
	hasError := err != nil
	status := "pass"
	if hasError {
		status = "handled"
	}

	fmt.Println("parts=", parts)
	fmt.Println("value=", value)
	fmt.Println("hasError=", hasError)
	fmt.Println("status=", status)
}
package main

import (
	"errors"
	"fmt"
)

func divide(total int, parts int) (int, error) {
	if parts == 0 {
		return 0, errors.New("parts must not be zero")
	}
	return total / parts, nil
}

func main() {
	var parts = 
	value, err := divide(10, parts)
	hasError := err != nil
	status := "pass"
	if hasError {
		status = "handled"
	}

	fmt.Println("parts=", parts)
	fmt.Println("value=", value)
	fmt.Println("hasError=", hasError)
	fmt.Println("status=", status)
}
error check An error check can test both the successful result and the error status without crashing the program.