Функция panic в Go
Как известно, обычный способ сообщения об ошибке вызывающей стороне заключается в возврате error как дополнительного возвращаемого значения. Хорошо известным примером является и канонический метод Read, возвращающий число прочитанных байтов и error. Но что делать, когда ошибка не может быть возвращена?
Ведь иногда программа просто не может продолжать работать.
В этой ситуации поможет встроенная функция panic. Она создает ошибку в процессе выполнения (run-time error), которая останавливает программу. Эта функция принимает 1 аргумент произвольного типа — чаще всего, строку, что необходимо для печати сообщения о завершении программы. Также это способ указать, что произошло что-то невозможное, к примеру, выход из бесконечного цикла.
И это лишь пример, однако реальным библиотечным функциям следует избегать panic. Как правило, если проблему можно замаскировать либо есть возможность сделать какой-нибудь обходной путь, то всегда будет лучше позволить программе продолжить работу, чем полностью ее остановить. Однако здесь следует привести и контрпример во время инициализации: когда библиотека по-настоящему не может настроить себя, то бывает разумно, скажем так, «паниковать».
По материалам блога https://golang-blog.blogspot.com/.