Golang基础-十三、错误与异常-《Golang,Go,Go,Go学习笔记》

admin 2026-03-24 10:10:37 编程 来源:ZONE.CI 全球网 0 阅读模式
  • 错误
    • error
    • 自己定一个错误
  • 2.异常
    • panic
    • recover

    错误

    1. - 错误是在程序中预期会发生的结果,预料之中

    error

    1. * 在代码中显示检查错误,而非忽略错误
    1. func main() {
    2. //打开一个没有的文件,
    3. file,error:=os.Open("aaa.txt")
    4. if error != nil {
    5. fmt.Println(error) //open aaa.txt: The system cannot find the file specified.
    6. return
    7. }
    8. fmt.Println(file.Name())
    9. }

    自己定一个错误

    1. * errors.New("xxx")
    2. * fmt.Error
    1. //设置的数字小于0 提示不合法
    2. func setAge(age int)error{
    3. if age<0 {
    4. return errors.New("不合法")
    5. }
    6. return nil
    7. }
    8. func main() {
    9. age :=setAge(-1)
    10. if age!=nil{
    11. fmt.Println(age)
    12. }
    13. }

    2.异常

    panic

    1. * 异常:不该出现问题的地方出现了问题,预料之外
    2. * 程序遇到painc会强制结束
    3. * defer延迟函数
    1. func main() {
    2. //defer延迟执行
    3. defer fmt.Println("aa")
    4. fmt.Println("123")
    5. //遇到panic终止程序前会先执行完defer
    6. panic("异常结束")
    7. }

    recover

    1. * recover结合defer处理panic异常
    1. func main() {
    2. //defer延迟执行
    3. defer func() {
    4. if msg := recover(); msg != nil {
    5. fmt.Println("recover执行了... panic msg:", msg)
    6. // 处理逻辑
    7. fmt.Println("---------程序已恢复----------")
    8. }
    9. }()
    10. defer fmt.Println("aa")
    11. defer fmt.Println("bb")
    12. fmt.Println("123")
    13. //遇到panic终止程序时会先执行完defer
    14. panic("遇到异常")
    15. }
    评论:0   参与:  0