Всё про ошибки в Go | Полное руководство для работы и собеседований
Автор: Igor Panasyuk
Загружено: 2026-01-12
Просмотров: 750
Материалы из видео - https://t.me/igoroutine/73
Курсы по программированию - https://igoroutine.courses/?utm_sourc...
В этом видео - полное руководство по ошибкам в Go, которое подойдёт и для повседневной разработки, и для собеседований. Мы начинаем с введения и разбора, что такое ошибка в Go, почему она является обычным значением и как правильно возвращать ошибку из функции. На простых примерах показаны соглашения о возврате ошибок, работа с nil для кастомных ошибок и типичные паттерны обработки. Далее обсуждаем, как в некоторых случаях избавиться от бесконечного err != nil, когда это оправдано, и как выглядит простая и читаемая обработка ошибок в реальном коде. Большой блок посвящён вложенным ошибкам: wrap, продвинутая обработка через errors.Is и errors.As, будущий AsType в Go 1.26, а также объединение ошибок с errors.Join. Отдельно разбираем кастомные ошибки, defer и их взаимодействие с ошибками, порядок выполнения defer, работу с nil, утечки ресурсов и классические задачи с собеседований про defer, замыкания и return. Во второй части видео подробно рассматриваются паники: что это такое, когда их использовать, различия между explicit и runtime panic, гарантии выполнения defer, способы перехвата паник и пример реального panic handler’а на сервере. Также обсуждаем паники в рантайме, попытки реализовать try-catch в Go, бенчмарки такого подхода, паники от nil и то, как всё это работает в реальной жизни. Видео завершается итогами и рекомендациями по идиоматичной работе с ошибками в Go.
Telegram: https://t.me/igoroutine
VK: https://vk.com/igoroutine
Instagram: / igoroutine
YouTube: / @igoroutine
Таймкоды:
00:00:00 - Введение
00:00:24 - Что такое ошибка?
00:01:29 - Возвращение ошибки из функции
00:01:50 - Пример функции
00:02:38 - Соглашение о возвращении ошибки
00:03:20 - nil для кастомных ошибок
00:08:45 - Избавляемся от err != nil (в некоторых случаях)
00:11:59 - Простая обработка ошибок
00:15:21 - Вложенные ошибки (WrapError)
00:21:24 - Продвинутая обработка ошибок (.Is, .As)
00:24:35 - .AsType (выйдет в Go 1.26)
00:25:51 - Объединение ошибок (.Join)
00:28:23 - Подробнее про кастомные ошибки
00:29:30 - defer и ошибки
00:31:25 - Задача с собеседования (defer, замыкание и лямбда)
00:34:25 - Порядок defer и return
00:35:55 - nil в defer
00:38:27 - defer вызываются в обратном порядке
00:39:44 - defer и утечка ресурсов
00:41:15 - Дополнительный материал
00:41:26 - Что такое паника?
00:42:43 - Как использовать паники?
00:45:24 - Explicit и runtime паники
00:46:05 - Гарантии при панике
00:48:13 - Как панику ловить?
00:54:02 - Пример обработчика паники (server interceptor)
00:57:57 - Паники в рантайме
01:03:19 - try-catch на Go
01:07:39 - Бенчмарк для try-catch
01:11:04 - Паника от nil
01:12:19 - Как работает в реальной жизни?
01:14:52 - Финал
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: