РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
12 of 1593 menu

Функция 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,
    которая используется для условного выполнения кода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить