What is the common way to return errors in Go functions?
In Go, functions often return an error as the last return value. If there is no error, the error value is nil.
Click to reveal answer
beginner
How do you check if a function returned an error in Go?
You compare the returned error value to nil. If it is not nil, an error occurred and should be handled.
Click to reveal answer
intermediate
What does the following Go code return?
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide by zero")
}
return a / b, nil
}
This function returns the result of a divided by b and nil error if b is not zero. If b is zero, it returns 0 and an error with the message "cannot divide by zero".
Click to reveal answer
intermediate
Why is it useful to return errors instead of panicking in Go?
Returning errors allows the caller to decide how to handle the problem, making the program more robust and easier to maintain.
Click to reveal answer
beginner
What package is commonly used to create error values in Go?
The fmt package is commonly used with fmt.Errorf to create formatted error messages.
Click to reveal answer
In Go, what does a function usually return to indicate an error?
AAn error value as the last return value
BA boolean true or false
CA panic message
DA string describing the error
✗ Incorrect
Go functions typically return an error type as the last return value to indicate if an error occurred.
How do you check if a Go function returned an error?
ACheck if error is true
BCheck if error equals zero
CCheck if error is nil
DCheck if error is empty string
✗ Incorrect
In Go, an error is nil if no error occurred. If it is not nil, an error happened.
What does fmt.Errorf do in Go?
ACreates a formatted error value
BPrints an error message
CStops the program
DReturns a boolean
✗ Incorrect
fmt.Errorf creates an error value with a formatted message.
What should you do if a Go function returns a non-nil error?
AReturn nil
BIgnore it
CAlways panic
DHandle the error appropriately
✗ Incorrect
You should handle errors to keep your program stable and predictable.
Which of these is a correct function signature for returning an error in Go?
Afunc example() error int
Bfunc example() (int, error)
Cfunc example() error
Dfunc example() int error
✗ Incorrect
The correct syntax places error as the last return type: (int, error).
Explain how to return and check errors in a Go function.
Think about how Go functions signal problems and how callers respond.
You got /3 concepts.
Describe why returning errors is preferred over panicking in Go programs.
Consider the difference between stopping a program and letting it recover.
You got /3 concepts.
Practice
(1/5)
1.
What does a Go function return when there is no error?
easy
A. It returns nil as the error value.
B. It returns 0 as the error value.
C. It returns "no error" as the error value.
D. It returns an empty string "" as the error value.
Solution
Step 1: Understand Go error convention
In Go, functions return an error type to indicate problems. If no problem occurs, the error is nil.
Step 2: Identify the correct no-error return value
The standard way to show no error is to return nil, not zero, empty string, or text.
Final Answer:
It returns nil as the error value. -> Option A
Quick Check:
No error means error = nil [OK]
Hint: No error always returns nil, never zero or empty string [OK]
Common Mistakes:
Returning 0 instead of nil for no error
Returning empty string instead of nil
Returning a string message instead of nil
2.
Which of the following is the correct way to declare a Go function that returns an int and an error?
func example() ???
easy
A. func example() (int, error)
B. func example() int, error
C. func example() int error
D. func example() (int error)
Solution
Step 1: Recall Go function return syntax
Go functions return multiple values by listing types in parentheses separated by commas.
Step 2: Match correct syntax
The correct syntax for returning an int and error is (int, error). Other options miss commas or parentheses.
Final Answer:
func example() (int, error) -> Option A
Quick Check:
Multiple returns use parentheses and commas [OK]
Hint: Use parentheses and commas for multiple return types [OK]
Common Mistakes:
Omitting parentheses for multiple returns
Missing comma between return types
Writing return types without parentheses
3.
What will be the output of this Go program?
package main
import (
"errors"
"fmt"
)
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result)
}
}
medium
A. runtime error
B. division by zero
C. 10
D. 0
Solution
Step 1: Analyze divide function behavior
If divisor b is zero, function returns error with message "division by zero" and result 0.
Step 2: Check main function output
Main calls divide(10, 0), gets error != nil, so prints the error message.
Final Answer:
division by zero -> Option B
Quick Check:
Error returned prints message [OK]
Hint: If error is not nil, print error message [OK]
Common Mistakes:
Printing result even when error is not nil
Expecting 0 as output instead of error message
Assuming runtime panic on division by zero
4.
Identify the error in this Go function that returns an error:
The function uses os.Open but does not import os package, causing a compile error.
Step 2: Verify other code parts
Return types and defer placement are correct; only missing import is the problem.
Final Answer:
Missing import of os package. -> Option D
Quick Check:
Using os.Open requires importing os [OK]
Hint: Check imports when using standard library functions [OK]
Common Mistakes:
Forgetting to import packages used
Placing defer before error check
Returning wrong number of values
5.
You want to write a Go function parseNumber that takes a string and returns an int and an error. It should return an error if the string is empty or not a valid number. Which implementation correctly returns errors?
func parseNumber(s string) (int, error) {
if s == "" {
return 0, errors.New("empty input")
}
n, err := strconv.Atoi(s)
if err != nil {
return 0, err
}
return n, nil
}
hard
A. Returns error only for invalid number, not empty string.
B. Returns nil error even if input is empty.
C. Correctly returns errors for empty and invalid input.
D. Returns zero and nil error for all inputs.
Solution
Step 1: Check empty string error handling
The function returns error "empty input" if string is empty, which is correct.
Step 2: Check invalid number error handling
Uses strconv.Atoi to convert string; returns error if conversion fails.
Step 3: Confirm success return
If no error, returns parsed number and nil error.
Final Answer:
Correctly returns errors for empty and invalid input. -> Option C
Quick Check:
Empty and invalid inputs return errors [OK]
Hint: Return error immediately on invalid input [OK]
Common Mistakes:
Not checking empty string before conversion
Ignoring error from strconv.Atoi
Returning nil error on invalid input
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.