Menu
CoddyTech

Разбираемся с `panic`

Часть раздела Логика и управление потоком путешествия по GO на Coddy. Урок 42 из 68.

В Go panic — это встроенная функция, предназначенная для действительно исключительных ситуаций, когда программа сталкивается с неисправимой ошибкой и должна немедленно остановиться. В отличие от обычных ошибок, которые вы обрабатываете корректно, panic используют только при катастрофических сбоях, указывающих на фундаментальную проблему в логике программы или её окружении.

Когда вызывается panic, обычное выполнение текущей функции немедленно останавливается, и начинается раскрутка стека вызовов. Это сильно отличается от типичного для Go подхода, при котором возвращаются ошибки, обрабатываемые вызывающим кодом.

В идиоматическом Go panic используется редко. Сообщество Go решительно предпочитает явную обработку ошибок с помощью возвращаемых значений, а не обработку ошибок с помощью паники. Вы можете встретить panic в таких ситуациях, как обращение к элементу массива за его границами, разыменование указателя nil или обнаружение библиотекой невозможного состояния, указывающего на ошибку в программе.

Большинство программ на Go должны корректно обрабатывать ошибки, используя стандартный интерфейс error, о котором ты уже узнал. Рассматривать panic следует только в том случае, если у программы действительно нет разумного способа продолжить выполнение.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Go