Lab 04: Error Handling
Overview
Step 1: The error Interface
type error interface {
Error() string
}package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 2)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Printf("10 / 2 = %.1f\n", result)
_, err = divide(5, 0)
if err != nil {
fmt.Println("error:", err)
}
}Step 2: Custom Error Types
Step 3: Sentinel Errors
Step 4: Error Wrapping with %w
Step 5: errors.As — Type Assertion for Errors
Step 6: panic and recover
Step 7: Multiple Error Returns & Error Aggregation
Step 8: Capstone — Layered Error Handling
Summary
Concept
API
When to Use
Last updated
