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

Функция log.Panicf

Функция log.Panicf форматирует сообщение по заданному шаблону, выводит его в стандартный логгер и вызывает панику с этим же сообщением. Первый параметр функции - строка формата, второй и последующие - аргументы для форматирования. После вызова log.Panicf выполнение программы останавливается, а паника распространяется по стеку вызовов, если не была перехвачена механизмом восстановления.

Синтаксис

log.Panicf(format string, v ...interface{})

Функция принимает строку формата и переменное количество аргументов, подобно fmt.Printf. Строка формата может содержать спецификаторы для вставки значений различных типов.

Пример

Давайте вызовем панику с форматированным сообщением:

package main import ( "log" ) func main() { name := "Alice" age := 30 log.Panicf("User %s is %d years old", name, age) }

Результат выполнения кода:

"2026/01/15 14:30:45 User Alice is 30 years old"

Программа выведет сообщение в лог и завершится с паникой.

Пример

Если необходимо вывести значение ошибки вместе с дополнительной информацией:

package main import ( "log" "strconv" ) func main() { value := "abc" num, err := strconv.Atoi(value) if err != nil { log.Panicf("Failed to convert '%s' to int: %v", value, err) } log.Printf("Converted number: %d", num) }

Результат выполнения кода:

"2026/01/15 14:30:46 Failed to convert 'abc' to int: strconv.Atoi: parsing \"abc\": invalid syntax"

В этом примере при ошибке конвертации выводится детальное сообщение, а программа завершается паникой.

Пример

Покажем, как перехватить панику с помощью recover:

package main import ( "fmt" "log" ) func main() { defer func() { if r := recover(); r != nil { fmt.Printf("Recovered from panic: %v\n", r) } }() log.Panicf("Critical error: %s", "database connection lost") fmt.Println("This line will not be executed") }

Результат выполнения кода:

"2026/01/15 14:30:47 Critical error: database connection lost" "Recovered from panic: Critical error: database connection lost"

Сообщение сначала попадает в лог, затем паника перехватывается в отложенной функции, и программа продолжает выполнение.

Смотрите также

  • функцию log.Panic,
    которая выводит сообщение и вызывает панику без форматирования
  • функцию log.Panicln,
    которая выводит сообщение с пробелами между аргументами и вызывает панику
  • функцию log.Fatalf,
    которая выводит форматированное сообщение и завершает программу без паники
  • функцию log.Printf,
    которая выводит форматированное сообщение без остановки программы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить