Use
os.Exit
to immediately exit with a given
status.
packagemain
import("fmt""os")
funcmain(){
defer
s will
not
be run when using
os.Exit
, so
this
fmt.Println
will never be called.
deferfmt.Println("!")
Exit with status 3.
os.Exit(3)}
Note that unlike e.g. C, Go does not use an integer
return value from
main
to indicate exit status. If
you’d like to exit with a non-zero status you should
use
os.Exit
.
If you run
exit.go
using
go run
, the exit
will be picked up by
go
and printed.
$ go run exit.go
exit status 3
By building and executing a binary you can see
the status in the terminal.
$ go build exit.go
$ ./exit
$ echo $?
3
Note that the
!
from our program never got printed.