Проверяет понимание механики ошибок в Go 1.20+.
errors.Is — проверяет, является ли ошибка конкретной ошибкой в цепочке.
errors.As — достаёт конкретный тип ошибки.
errors.Join — объединяет несколько ошибок в одну.
errors.Is(err, target)
Сравнивает ошибку с конкретным значением, проходя по цепочке обёрток.
errors.As(err, &target)
Пытается привести ошибку к конкретному типу. Полезно, если у ошибки есть методы или дополнительные поля.
errors.Join(err1, err2, ...)
Создаёт сложную ошибку, содержащую несколько причин.
Пример:
if errors.Is(err, sql.ErrNoRows) { ... }
var e *MyCustomError
if errors.As(err, &e) { ... }
return errors.Join(err1, err2)