首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
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("容错处理:埋点上报失败,忽略不影响主流程")
|
||||
}
|
||||
Reference in New Issue
Block a user