Используйте os.Exit для немедленного завершения
программы с заданным статусом.
packagemain
import("fmt""os")
funcmain(){
Отложенные вызовы (defer) не будут выполнены
при использовании os.Exit, поэтому этот
fmt.Println никогда не будет вызван.
deferfmt.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
Заметьте, что ! из программы так и не был выведен.