паники

This commit is contained in:
badkaktus 2019-10-08 22:16:17 +03:00
parent 7dabb31483
commit 381b1303da
2 changed files with 21 additions and 17 deletions

View File

@ -1,7 +1,8 @@
// A `panic` typically means something went unexpectedly // `Panic` обычно означает, что что-то неожиданно пошло
// wrong. Mostly we use it to fail fast on errors that // не так. В основном мы используем его для быстрого
// shouldn't occur during normal operation, or that we // отказа при ошибках, которые не должны возникать во
// aren't prepared to handle gracefully. // время нормальной работы, или которые мы не готовы
// обрабатывать.
package main package main
@ -9,15 +10,17 @@ import "os"
func main() { func main() {
// We'll use panic throughout this site to check for // Мы будем использовать panic на этом сайте, чтобы
// unexpected errors. This is the only program on the // проверять наличие неожиданных ошибок. Это
// site designed to panic. // единственная программа на сайте, предназначенная
// для паники.
panic("a problem") panic("a problem")
// A common use of panic is to abort if a function // Обычное использование panic - это прерывание,
// returns an error value that we don't know how to // если функция возвращает значение ошибки, которое
// (or want to) handle. Here's an example of // мы не знаем, как (или хотим) обрабатывать. Вот
// `panic`king if we get an unexpected error when creating a new file. // пример `panic`, если мы получаем неожиданную ошибку
// при создании нового файла.
_, err := os.Create("/tmp/file") _, err := os.Create("/tmp/file")
if err != nil { if err != nil {
panic(err) panic(err)

View File

@ -1,6 +1,6 @@
# Running this program will cause it to panic, print # Запуск этой программы вызовет панику, распечатает
# an error message and goroutine traces, and exit with # сообщение об ошибке и трейс выполнения и завершит
# a non-zero status. # работу с ненулевым статусом.
$ go run panic.go $ go run panic.go
panic: a problem panic: a problem
@ -10,6 +10,7 @@ main.main()
... ...
exit status 2 exit status 2
# Note that unlike some languages which use exceptions # Обратите внимание, что в отличие от некоторых языков,
# for handling of many errors, in Go it is idiomatic # которые используют исключения для обработки
# to use error-indicating return values wherever possible. # ошибок, в Go привычно использовать возвращающие значения,
# указывающие на ошибки.