pkgsite: golang.org/x/pkgsite/internal/derrors Index | Files

package derrors

import "golang.org/x/pkgsite/internal/derrors"

Package derrors defines internal error values to categorize the different types error semantics we support.

Index

Package Files

derrors.go

Variables

var (
    // HasIncompletePackages indicates a module containing packages that
    // were processed with a 60x error code.
    HasIncompletePackages = errors.New("has incomplete packages")

    // NotFound indicates that a requested entity was not found (HTTP 404).
    NotFound = errors.New("not found")

    // NotFetched means that the proxy returned "not found" with the
    // Disable-Module-Fetch header set. We don't know if the module really
    // doesn't exist, or the proxy just didn't fetch it.
    NotFetched = errors.New("not fetched by proxy")

    // InvalidArgument indicates that the input into the request is invalid in
    // some way (HTTP 400).
    InvalidArgument = errors.New("invalid argument")
    // BadModule indicates a problem with a module.
    BadModule = errors.New("bad module")
    // Excluded indicates that the module is excluded. (See internal/postgres/excluded.go.)
    Excluded = errors.New("excluded")

    // AlternativeModule indicates that the path of the module zip file differs
    // from the path specified in the go.mod file.
    AlternativeModule = errors.New("alternative module")

    // ModuleTooLarge indicates that the module is too large for us to process.
    // This should be temporary: we should obtain sufficient resources to process
    // any module, up to the max size allowed by the proxy.
    ModuleTooLarge = errors.New("module too large")

    // SheddingLoad indicates that the server is overloaded and cannot process the
    // module at this time.
    SheddingLoad = errors.New("shedding load")

    // Unknown indicates that the error has unknown semantics.
    Unknown = errors.New("unknown")

    // ProxyTimedOut indicates that a request timed out when fetching from the Module Mirror.
    ProxyTimedOut = errors.New("proxy timed out")

    // PackageBuildContextNotSupported indicates that the build context for the
    // package is not supported.
    PackageBuildContextNotSupported = errors.New("package build context not supported")
    // PackageMaxImportsLimitExceeded indicates that the package has too many
    // imports.
    PackageMaxImportsLimitExceeded = errors.New("package max imports limit exceeded")
    // PackageMaxFileSizeLimitExceeded indicates that the package contains a file
    // that exceeds fetch.MaxFileSize.
    PackageMaxFileSizeLimitExceeded = errors.New("package max file size limit exceeded")
    // PackageDocumentationHTMLTooLarge indicates that the rendered documentation
    // HTML size exceeded the specified limit for dochtml.RenderOptions.
    PackageDocumentationHTMLTooLarge = errors.New("package documentation HTML is too large")
    // PackageBadImportPath represents an error loading a package because its
    // contents do not make up a valid package. This can happen, for
    // example, if the .go files fail to parse or declare different package
    // names.
    // Go files were found in a directory, but the resulting import path is invalid.
    PackageBadImportPath = errors.New("package bad import path")
    // PackageInvalidContents represents an error loading a package because
    // its contents do not make up a valid package. This can happen, for
    // example, if the .go files fail to parse or declare different package
    // names.
    PackageInvalidContents = errors.New("package invalid contents")

    // DBModuleInsertInvalid represents a module that was successfully
    // fetched but could not be inserted due to invalid arguments to
    // postgres.InsertModule.
    DBModuleInsertInvalid = errors.New("db module insert invalid")

    // ReprocessStatusOK indicates that the module to be reprocessed
    // previously had a status of http.StatusOK.
    ReprocessStatusOK = errors.New("reprocess status ok")
    // ReprocessHasIncompletePackages indicates that the module to be reprocessed
    // previously had a status of 290.
    ReprocessHasIncompletePackages = errors.New("reprocess has incomplete packages")
    // ReprocessBadModule indicates that the module to be reprocessed
    // previously had a status of derrors.BadModule.
    ReprocessBadModule = errors.New("reprocess bad module")
    // ReprocessAlternativeModule indicates that the module to be reprocessed
    // previously had a status of derrors.AlternativeModule.
    ReprocessAlternative = errors.New("reprocess alternative module")
    // ReprocessDBModuleInsertInvalid represents a module to be reprocessed
    // that was successfully fetched but could not be inserted due to invalid
    // arguments to postgres.InsertModule.
    ReprocessDBModuleInsertInvalid = errors.New("reprocess db module insert invalid")
)

func Add Uses

func Add(errp *error, format string, args ...interface{})

Add adds context to the error. The result cannot be unwrapped to recover the original error. It does nothing when *errp == nil.

Example:

defer derrors.Add(&err, "copy(%s, %s)", src, dst)

See Wrap for an equivalent function that allows the result to be unwrapped.

func FromStatus Uses

func FromStatus(code int, format string, args ...interface{}) error

FromStatus generates an error according for the given status code. It uses the given format string and arguments to create the error string according to the fmt package. If format is the empty string, then the error corresponding to the code is returned unwrapped.

If code is http.StatusOK, it returns nil.

func Report Uses

func Report(err error)

Report uses the errorreporting API to report an error.

func SetReportingClient Uses

func SetReportingClient(c *errorreporting.Client)

SetReportingClient sets an errorreporting client, for use by Report.

func ToReprocessStatus Uses

func ToReprocessStatus(status int) int

ToReprocessStatus returns the reprocess status code corresponding to the provided status.

func ToStatus Uses

func ToStatus(err error) int

ToStatus returns a status code corresponding to err.

func Wrap Uses

func Wrap(errp *error, format string, args ...interface{})

Wrap adds context to the error and allows unwrapping the result to recover the original error.

Example:

defer derrors.Wrap(&err, "copy(%s, %s)", src, dst)

See Add for an equivalent function that does not allow the result to be unwrapped.

func WrapAndReport Uses

func WrapAndReport(errp *error, format string, args ...interface{})

WrapAndReport calls Wrap followed by Report.

Package derrors imports 4 packages (graph) and is imported by 46 packages. Updated 2021-01-24. Refresh now. Tools for package owners.