Go by Example: Panic

英文源地址
Panic通常意味着事情出乎意料地出错了.大多数情况下, 我们使用它来快速处理在正常操作中不应该发生的错误, 或者我们没有准备好优雅处理的错误.

package main

import "os"

func main() {
    
    
	// 我们将在整个网站中使用panic来检查意外错误
	// 这是网站中唯一一个用来制造panic的程序
	panic("a problem")
	
	// panic的一种常见用法是, 如果函数返回一个我们不知道如何(或想要)处理的错误值, 就终止它.
	// 下面是一个创建新文件时出现意外错误的例子
	_, err := os.Create("/tmp/file")
	if err != nil {
    
    
		panic(err)
	}
}

运行此程序将导致panic, 打印错误信息和运行协程跟踪, 并以非零状态退出.
当main函数中第一次panic触发时, 程序退出而不触及其余代码.如果希望看到程序尝试创建一个临时文件, 请注释第一个panic.

$ go run panic.go
panic: a problem
goroutine 1 [running]:
main.main()
    /.../panic.go:12 +0x47
...
exit status 2

请注意. 与一些使用异常处理许多错误的语言不同, Go语言习惯上尽可能使用指代错误的返回值.
下一节将介绍Defer

猜你喜欢

转载自blog.csdn.net/weixin_43547795/article/details/130875277