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 привычно использовать возвращающие
# значения, указывающие на ошибки.