This is a created article in which the information may have evolved or changed.
Package Mainimport ( "FMT") func main () { f () FMT. PRINTLN ("returned normally from F.")} Func f () { defer func () { if r: = Recover (); r! = nil { FMT. Println ("Recovered in F", R) FMT. Println ("Recovered in F", R) } } () FMT. Println ("calling G.") G () FMT. PRINTLN ("returned normally from G.")} Func g () { Panic ("ERROR")}
Panic means throwing an exception, similar to Python's raise usage
Recover is a catch exception, similar to Python's except usage
Defer will defer the function to other functions after the end of execution, followed by the function
Golang error Handling process: When a function has an exception or is encountered during execution
Panic (), the normal statement terminates immediately, then executes the defer statement, and then reports the different
Information, and finally exit Goroutine. If the recover () is used in the defer
function, an error message is captured that causes the error message to terminate the report.