This is a created article in which the information may have evolved or changed.
General Scenarios
directly with the OS. Exit (Exit_code), but this is too violent, we need to put a bit of force, and then found this: https://stackoverflow.com/questions/24601516/ Correct-way-to-set-exit-code-of-process
package mainimport ( "fmt" "os")func main() { code := 0 defer func() { os.Exit(code) }() defer func() { fmt.Println("Another deferred func") }() fmt.Println("Hello, 世界") code = 1}
Problem
Call Panic when you know the above methods exist insufficient! After panic causes main to exit, the Trace Log should be printed immediately, but the OS is called when main exits. Exit (), then no then ...
Sure enough is to be struck by Thunder , originally panic, the exit code should be 2, the result of the above loaded force code, the exit code becomes 0! If the panic is self-invoked, it can be changed, using another way, if it is the other library functions are difficult ...