恐慌("error_msg")和恐慌(error.New("error_msg")之间有什么区别?

Hew*_*Liu 4 go

考虑到我正在使用原始的"错误"去包.

而且,恐慌(11)和恐慌("11")之间的区别?

One*_*One 5

panic定义为func panic(v interface{}),调用panic(anything)将打印anything调用函数的堆栈跟踪的字符串表示.

唯一不同的是,如果您使用recover,您将能够访问您传递给恐慌的任何内容,例如:

func main() {
    defer func() {
        if err := recover(); err != nil {
            if n, ok := err.(int); ok && n == 11 {
                fmt.Println("got 11!")
            }
        }
    }()
    panic(11)
}
Run Code Online (Sandbox Code Playgroud)