Разберётесь с ошибками в Go как система: %w и цепочки, errors.Is/As/Join, defer без ловушек, panic и recover по назначению, устойчивые конвейеры с повторами и частичным успехом.
Defer закрывает ресурс и по дороге затирает ошибку записи: вызывающий код получает nil вместо disk full. В курсе такие случаи разбираются по уликам: что видно в выводе, в какой строке причина, какая правка возвращает ошибку.
Решение вы пишете полной программой на Go, проверка прогоняет её на тестах с краевыми случаями.
Из пяти способов вызвать recover панику останавливают два: вызов прямо из отложенной функции и обёртка defer func() { recover() }(). Запись defer recover() в таком виде её не гасит, а вызов из обычного кода возвращает nil.
На этом строится safeCall: паника внутри функции становится обычной ошибкой, а вы проверяете, где такая защита не помогает.
В финале вы собираете обработку партии: паника в одной записи превращается в ошибку, остальные идут дальше, повторяются только временные ошибки, а итоговый отчёт показывает, что прошло и что защита не закрывает.
Каждая проверка в курсе сообщает, что именно не совпало: ожидаемый и ваш вывод рядом.
Базовый Go: функции, структуры, срезы, map, методы и интерфейсы на уровне «понимаю, что это».
Горутины и каналы встречаются в двух последних модулях, нужный минимум объяснён там же.
Ставить ничего не нужно: решения пишутся и проверяются в браузере.
Go-разработчикам, у которых в коде встречается if err != nil { return err } и которые хотят понимать, что теряется на пути вверх по стеку.
Тем, кто ловил панику в продакшене и хочет знать, где recover уместен, а где он прячет дефект.
Разработчикам из языков с исключениями: здесь показано, как в Go устроена обработка сбоев без try и catch.
Вопросы по курсу можно задать поддержке в Telegram: t.me/mentorix_support.
Модулей: 5, уроков: 21. Задачи с кодом проверяются автоматически.
Стоимость курса: 2990 ₽