Error handling в Go: явный `if err != nil`, sentinel errors, wrap через `%w`, `errors.Is`, `errors.As`. Когда что использовать?