为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第3天 Go语言语法进阶指南-错误与异常&长度与容量

标签:
Go

课程章节:内建方法

课程讲师:Gavin

课程内容:

  1. panic&recover

图片描述

图片描述

package main

import "fmt"

func main() {
    //Test for panic() and recover()
    receivePanic()
}

// panic 抛出异常
func receivePanic() {
    // 1.
    // defer func() {
    //     message := recover()
    //     fmt.Println("panic message: ", message)
    // }()
    // panic("I am panic")

    // 2. 
    defer coverPanic()
    panic(errors.New("I am error"))
}

// recover 捕获异常
func coverPanic() {
    message := recover()
    switch message.(type) {
    case string:
        fmt.Println("string message case error : ", message)
    case error:
        fmt.Println("error message : " , message)
    default:
        fmt.Println("unknown panic : ", message)
    }
}
  1. len&cop&close

图片描述

package main

import "fmt"

func main() {
    //Test for len() and cap()
    getLen()
}

// len() cap()  测试长度与容量
func getLen() {
    // 长度,容量
    mIDSliceDst := make([]string, 2, 5)
    mIDSliceDst[0] = "id-dst-1"
    mIDSliceDst[1] = "id-dst-2"
    mIDSliceDst= append(mIDSliceDst, elems:"id-dst-3")
    fmt.Println(a: "mIDSliceDst len :",len(mIDSliceDst))
    fmt.Println(a: "mIDSliceDst cap :",cap(mIDSliceDst))
}

// close() 创建和关闭chan
func closeChan() {
    mChan := make(chan int, 1)
    mChan <- 1
    defer close(mChan)
    // 业务代码
}

课程收获:

  1. len增长,cap会预判也做增长
    图片描述
  2. chan需要close;关闭了channel再写数据会报错
    图片描述
  3. defer是当前方法执行完之后的最后一个操作
  4. panic和recover最好能成对出现
  5. 小结
    图片描述
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消