第 19 课2026.09.24
只对时长校验错误显示有针对性的输入提示。
第 19 课:按错误身份显示校验提示
- 日期:2026-09-24
- 课程序号:第 19 课
- 知识点:依据
errors.Is分支处理
用途或适用场景
只对时长校验错误显示有针对性的输入提示。
核心概念
errors.Is 会沿包装链匹配底层错误;调用方据此选择提示,而不是解析错误文字。
最小代码或操作示例
go
package main
import (
"errors"
"fmt"
)
var errMinutes = errors.New("minutes must be positive")
func validate(minutes int) error {
if minutes <= 0 { return fmt.Errorf("minutes=%d: %w", minutes, errMinutes) }
return nil
}
func main() {
if err := validate(-3); errors.Is(err, errMinutes) {
fmt.Println("请输入正数分钟")
}
}3~5 分钟练习
把 -3 改为 5,观察提示是否出现。
参考答案
不输出提示;成功结果是 nil,errors.Is(nil, errMinutes) 为 false。
与上一课的联系
沿用第 18 课的 errMinutes、validate、%w 和 errors.Is;本课只把匹配结果用于调用方提示分支;完成后下一课可为另一类错误增加独立提示。
时效校验
时效校验:2026-09-24(Go 标准库 errors.Is 与 fmt.Errorf 官方文档;错误包装和匹配最低 Go 1.13,未见废弃标记)。