Функция panic
Функция panic в Go используется для немедленного прерывания
нормального потока выполнения программы. Когда вызывается panic,
текущая горутина прекращает выполнение, а все отложенные функции
(через defer) начинают выполняться в обратном порядке.
В качестве аргумента функция принимает любое значение (обычно
строку с описанием ошибки), которое будет выведено при панике.
Синтаксис
panic(interface{})
Пример
Давайте рассмотрим простой пример вызова паники:
package main
import "fmt"
func main() {
fmt.Println("Start")
panic("something went wrong")
fmt.Println("End")
}
Результат выполнения кода:
"Start"
"panic: something went wrong"
Пример
Давайте рассмотрим использование panic вместе
с defer. Отложенные функции выполняются даже при панике:
package main
import "fmt"
func main() {
defer fmt.Println("Deferred function 1")
defer fmt.Println("Deferred function 2")
panic("critical error")
}
Результат выполнения кода:
"Deferred function 2"
"Deferred function 1"
"panic: critical error"
Пример
Часто panic используют для обработки ситуаций,
которые не должны происходить в正常工作 программы.
Например, при невозможности инициализации важного компонента:
package main
import "fmt"
func initConfig() {
// Simulate a critical failure
panic("failed to load configuration")
}
func main() {
fmt.Println("Starting application")
initConfig()
fmt.Println("Application running")
}
Результат выполнения кода:
"Starting application"
"panic: failed to load configuration"
Смотрите также
-
функцию
recover,
которая позволяет перехватить панику и восстановить выполнение -
инструкцию
defer,
которая откладывает выполнение функции до завершения окружающей функции -
инструкцию
return,
которая завершает выполнение текущей функции и возвращает результат -
инструкцию
if,
которая используется для условного выполнения кода