错误
- 错误是在程序中预期会发生的结果,预料之中
error
* 在代码中显示检查错误,而非忽略错误
func main() { //打开一个没有的文件, file,error:=os.Open("aaa.txt") if error != nil { fmt.Println(error) //open aaa.txt: The system cannot find the file specified. return } fmt.Println(file.Name())}
自己定一个错误
* errors.New("xxx") * fmt.Error
//设置的数字小于0 提示不合法func setAge(age int)error{ if age<0 { return errors.New("不合法") } return nil}func main() { age :=setAge(-1) if age!=nil{ fmt.Println(age) }}
2.异常
panic
* 异常:不该出现问题的地方出现了问题,预料之外 * 程序遇到painc会强制结束 * defer延迟函数
func main() { //defer延迟执行 defer fmt.Println("aa") fmt.Println("123") //遇到panic终止程序前会先执行完defer panic("异常结束")}
recover
* recover结合defer处理panic异常
func main() { //defer延迟执行 defer func() { if msg := recover(); msg != nil { fmt.Println("recover执行了... panic msg:", msg) // 处理逻辑 fmt.Println("---------程序已恢复----------") } }() defer fmt.Println("aa") defer fmt.Println("bb") fmt.Println("123") //遇到panic终止程序时会先执行完defer panic("遇到异常")}