mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
ebcb7d6b40
Use strongly typed errors to set HTTP status codes. Error interfaces are defined in the api/errors package and errors returned from controllers are checked against these interfaces. Errors can be wraeped in a pkg/errors.Causer, as long as somewhere in the line of causes one of the interfaces is implemented. The special error interfaces take precedence over Causer, meaning if both Causer and one of the new error interfaces are implemented, the Causer is not traversed. Signed-off-by: Brian Goff <cpuguy83@gmail.com>
8 lines
605 B
Go
8 lines
605 B
Go
// Package errdefs defines a set of error interfaces that packages should use for communicating classes of errors.
|
|
// Errors that cross the package boundary should implement one (and only one) of these interfaces.
|
|
//
|
|
// Packages should not reference these interfaces directly, only implement them.
|
|
// To check if a particular error implements one of these interfaces, there are helper
|
|
// functions provided (e.g. `Is<SomeError>`) which can be used rather than asserting the interfaces directly.
|
|
// If you must assert on these interfaces, be sure to check the causal chain (`err.Cause()`).
|
|
package errdefs
|