Функция log.Panicln
Функция log.Panicln используется для записи сообщения в стандартный логгер
с последующим вызовом паники panic. В первый параметр функция принимает
сообщение, которое будет записано в лог. После записи сообщения выполнение
программы прерывается с паникой. Функция автоматически добавляет перевод строки
в конце сообщения.
Синтаксис
log.Panicln(message)
Пример
Давайте запишем сообщение об ошибке и вызовем панику:
package main
import (
"log"
)
func main() {
log.Panicln("critical error occurred")
}
Результат выполнения кода:
2026/01/15 10:30:45 critical error occurred
panic: critical error occurred
goroutine 1 [running]:
log.Panicln(0x...)
/usr/local/go/src/log/log.go:... +0x...
main.main()
/tmp/sandbox/prog.go:8 +0x...
Пример с использованием fmt.Println
Давайте сравним поведение log.Panicln и fmt.Println:
package main
import (
"fmt"
"log"
)
func main() {
fmt.Println("This message will be printed")
log.Panicln("This message will be logged and cause panic")
fmt.Println("This message will never be printed")
}
Результат выполнения кода:
This message will be printed
2026/01/15 10:30:45 This message will be logged and cause panic
panic: This message will be logged and cause panic
goroutine 1 [running]:
log.Panicln(0x...)
/usr/local/go/src/log/log.go:... +0x...
main.main()
/tmp/sandbox/prog.go:10 +0x...
Как видно из примера, после вызова log.Panicln программа завершается
с паникой, и последующий код не выполняется.
Пример с обработкой паники
Давайте перехватим панику с помощью recover:
package main
import (
"fmt"
"log"
)
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
log.Panicln("panic with custom message")
fmt.Println("This will not be executed")
}
Результат выполнения кода:
2026/01/15 10:30:45 panic with custom message
Recovered from panic: panic with custom message
Смотрите также
-
функцию
log.Panic,
которая записывает сообщение без добавления перевода строки -
функцию
log.Panicf,
которая форматирует сообщение с использованием шаблона -
функцию
log.Fatalln,
которая завершает программу без паники -
функцию
log.Println,
которая записывает сообщение в лог без вызова паники