Loading

Go语言精进之路读书笔记第39条——不要使用panic进行正常的错误处理

39.1 Go的panic不是Java的checked exception

1.checked exception实质是错误,而panic是异常

2.API调用者没有义务处理panic

3.未被捕获的panic意味着“游戏结束”

39.2 panic的典型应用

1.充当断言角色,提示潜在bug

// $GOROOT/src/encoding/decode.go

switch case语句中走到default的情况,触发panic

2.用于简化错误处理控制结构(不推荐)

3.使用recover捕获panic,防止goroutine意外退出

39.3 理解panic的输出信息

理解程序发生panic时输出的栈帧信息有助于快速定位bug,找出“元凶”

posted @ 2024-02-28 21:08  brynchen  阅读(7)  评论(0编辑  收藏  举报