Files
bulma/error_pattern.go

32 lines
734 B
Go

package main
import (
"errors"
"fmt"
)
// 哨兵错误
var (
ErrCacheOffline = errors.New("cache offline")
ErrRequestTimeout = errors.New("request timeout")
)
func main() {
fmt.Println("===== 错误处理模式 =====")
// 1. 快速失败
if err := errors.New("config load failed"); err != nil {
// 测试后面的把这一行 log.Fatalln 注释掉
// log.Fatalln("快速失败:服务启动终止 ->", err)
}
// 2. 服务降级
cacheErr := fmt.Errorf("get data failed: %w", ErrCacheOffline)
if errors.Is(cacheErr, ErrCacheOffline) {
fmt.Println("降级策略:缓存故障,使用数据库默认数据")
}
// 3. 容错忽略
fmt.Println("容错处理:埋点上报失败,忽略不影响主流程")
}