Всё про ошибки в Go | Полное руководство для работы и собеседований
В этом видео мы разберем обработку ошибок в Go от «А» до «Я» — как устроены ошибки под капотом, почему важно понимать разницу между errors.Is и errors.As, и как правильно использовать панику и дефёр в реальных приложениях.
В этом уроке:
Природа ошибок: почему ошибки в Go — это значения, и как работает встроенный интерфейс error.
Ловушка с NIL: разбираем популярный баг с интерфейсами, когда ошибка кажется пустой, но проверка err != nil возвращает true.
Цепочки ошибок (Error Wrapping): учимся чейнить ошибки через fmt.Errorf с глаголом %w, использовать errors.Join и распаковывать их для анализа.
Механизм Defer: как отложенные вызовы помогают управлять ресурсами, в каком порядке они выполняются и как могут менять именованные возвращаемые значения.
Паника и восстановление: в каких случаях допустимо использовать panic, как работает recover и как за кулисами происходит раскрутка стека (unwinding).
Практика: пишем безопасный сервер, который не падает при внутренних ошибках, и даже пробуем реализовать конструкцию try-catch на Go (и узнаем, почему так делать не стоит).
В итоге у тебя будет полное руководство по работе с исключительными ситуациями: от написания кастомных типов ошибок до понимания нюансов рантайма, что позволит тебе писать надежный код и уверенно отвечать на сложные вопросы на собеседованиях.