成功的逻辑一般不会放在else块中而是在外层的作用域。
1.最常见的策略将错误传递下去,子例程的错误变成主例程的错误。
resp, err := http.Get(url)
if err != nil {
return nil, err
}
fmt.Errorf格式化一条错误消息并返回一个新的错误值
fmt.Errorf("a error") //返回一个error
2.对于某些错误,短暂的间隔进行重试,超出一个定重试次数和限定时间再报错退出。
3.对于主程序来说,遇错时如果无法顺利进行下去,可以输出错误然后停止程序。
一个方便的方法是调用log.Fatalf,默认会将日期和时间作为前缀添加到错误消息前。
log.Fatalf(“error is : %v”, err) //所有log函数都会为缺少换行符的日志补充一个换行符
4.在一些错误情况下,只记录错误信息然后程序继续运行。
log.Printf("error!!")
5.罕见情况,忽略掉整个日志