Go за Прикладом: Паніка

Work in Progress / Сайт в процесі розробки

panic зазвичай означає те, що щось пішло неочікувано погано. Дуже погано. В більшості випадків, ми використовуємо її задля швидкого провалу на помилках які зазвичай не мали б виникнути, або на помилках які ми не здадтні опрацювати акуратно.

package main
import "os"
func main() {

Ми скористаємось панікою на цьому місці для перевірки на неочікувані помилки. Єдина мета цього шматка коду запаніуквати.

    panic("маємо проблему")

Загальний використання паніки це перервати виконання функції по повертає помилку яку ми не знаємо як (або не хочемо) опрацьовувати. Ось приклад panicи якщо ми отримали неочікувану помилку під час створення файлу.

    _, err := os.Create("/tmp/file")
    if err != nil {
        panic(err)
    }
}

Запуск цієї программи призведе до її паніки, виводу повідомлення помилки та сліду горутина, та визоду з ненульовим статусом.

$ go run panic.go
panic: маємо проблему
goroutine 1 [running]:
main.main()
	/.../panic.go:12 +0x47
...
exit status 2

Зауважте що навідміну від інших мов що викоирстовують виключення для опрацювання помилок, в GO ідіоматично викорисовувати повернення помилок що вказують на проблеми як умога частіше.

Наступний приклад: Відкладення.