恐慌(Panic)
该实验要求你使用panic
函数,在正常操作期间不应发生或你未准备好优雅处理的错误上快速失败。
- 具备Go编程语言的基础知识。
- 熟悉Go语言中的错误处理。
- 理解Go语言中的
panic
函数。
## 运行此程序将导致它恐慌,打印错误消息和协程堆栈跟踪,并以非零状态退出。
## 当`main`函数中的第一次恐慌触发时,程序会在未到达其余代码的情况下退出。如果你想查看程序尝试创建临时文件的情况,请注释掉第一次恐慌。
$ go run panic.go
恐慌:出现问题
协程1 [运行中]:
main.main() /.../panic.go:12 +0x47
...
退出状态2
## 请注意,与一些使用异常来处理许多错误的语言不同,在Go语言中,尽可能使用指示错误的返回值是惯用做法。
以下是完整代码:
// “恐慌”通常意味着发生了意外的错误。大多数情况下,我们使用它在正常操作期间不应发生或我们未准备好优雅处理的错误上快速失败。
package main
import "os"
func main() {
// 在整个网站中,我们将使用恐慌来检查意外错误。这是网站上唯一设计为会恐慌的程序。
panic("出现问题")
// 恐慌的常见用途是在函数返回我们不知道如何(或不想)处理的错误值时中止。这是一个在创建新文件时如果得到意外错误就进行“恐慌”的示例。
_, err := os.Create("/tmp/file")
if err!= nil {
panic(err)
}
}