Panic

Panic|Panic #

// `Panic` обычно означает, что что-то неожиданно пошло
// не так. В основном мы используем его для быстрого
// отказа при ошибках, которые не должны возникать во
// время нормальной работы, или которые мы не готовы
// обрабатывать.

package main

import "os"

func main() {

	// Мы будем использовать panic на этом сайте, чтобы
	// проверять наличие неожиданных ошибок. Это
	// единственная программа на сайте, предназначенная
	// для паники.
	panic("a problem")

	// Обычное использование panic - это прерывание,
	// если функция возвращает значение ошибки, которое
	// мы не знаем, как (или хотим) обрабатывать. Вот
	// пример `panic`, если мы получаем неожиданную ошибку
	// при создании нового файла.
	_, err := os.Create("/tmp/file")
	if err != nil {
		panic(err)
	}
}
# Запуск этой программы вызовет панику, распечатает
# сообщение об ошибке и трейс выполнения и завершит
# работу с ненулевым статусом.
$ go run panic.go
panic: a problem

goroutine 1 [running]:
main.main()
	/.../panic.go:12 +0x47
...
exit status 2

# Обратите внимание, что в отличие от некоторых языков,
# которые используют исключения для обработки
# ошибок, в Go привычно использовать возвращающие
# значения, указывающие на ошибки.