Go на примерах: Завершение программы (exit)

Используйте os.Exit для немедленного завершения программы с заданным статусом.

package main
import (
    "fmt"
    "os"
)
func main() {

Отложенные вызовы (defer) не будут выполнены при использовании os.Exit, поэтому этот fmt.Println никогда не будет вызван.

    defer fmt.Println("!")

Завершаем программу со статусом 3.

    os.Exit(3)
}

Обратите внимание: в отличие, например, от C, в Go целочисленное возвращаемое значение из main не используется для указания статуса завершения. Если вы хотите завершить программу с ненулевым статусом, используйте os.Exit.

Если запустить exit.go с помощью go run, статус завершения будет перехвачен go и выведен на экран.

$ go run exit.go
exit status 3

При сборке и запуске бинарного файла статус можно увидеть в терминале.

$ go build exit.go
$ ./exit
$ echo $?
3

Заметьте, что ! из программы так и не был выведен.