Объяснение
Интерфейс Go описывает методы и реализуется неявно. Ошибка — значение, которое вызывающий код должен обработать. Оборачивание ошибки сохраняет контекст, а errors.Is позволяет проверить исходную причину.
Задача для самостоятельного решения
Почему сравнение текста ошибки ненадёжно?
Показать разбор ответа
Сообщение меняется при добавлении контекста. Используйте sentinel, тип ошибки или errors.Is/As, а текст оставляйте для диагностики человека.