Add a generic error type to capture non-typed errors
Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
This commit is contained in:
parent
7840a5bc8f
commit
e79324edd8
10 changed files with 44 additions and 29 deletions
|
@ -52,25 +52,29 @@ type Base struct {
|
|||
|
||||
// Format errors received from the storage driver
|
||||
func (base *Base) setDriverName(e error) error {
|
||||
if e != nil {
|
||||
if actualErr, ok := e.(storagedriver.ErrUnsupportedMethod); ok {
|
||||
actualErr.DriverName = base.StorageDriver.Name()
|
||||
return actualErr
|
||||
}
|
||||
if actualErr, ok := e.(storagedriver.PathNotFoundError); ok {
|
||||
actualErr.DriverName = base.StorageDriver.Name()
|
||||
return actualErr
|
||||
}
|
||||
if actualErr, ok := e.(storagedriver.InvalidPathError); ok {
|
||||
actualErr.DriverName = base.StorageDriver.Name()
|
||||
return actualErr
|
||||
}
|
||||
if actualErr, ok := e.(storagedriver.InvalidOffsetError); ok {
|
||||
actualErr.DriverName = base.StorageDriver.Name()
|
||||
return actualErr
|
||||
switch actual := e.(type) {
|
||||
case nil:
|
||||
return nil
|
||||
case storagedriver.ErrUnsupportedMethod:
|
||||
actual.DriverName = base.StorageDriver.Name()
|
||||
return actual
|
||||
case storagedriver.PathNotFoundError:
|
||||
actual.DriverName = base.StorageDriver.Name()
|
||||
return actual
|
||||
case storagedriver.InvalidPathError:
|
||||
actual.DriverName = base.StorageDriver.Name()
|
||||
return actual
|
||||
case storagedriver.InvalidOffsetError:
|
||||
actual.DriverName = base.StorageDriver.Name()
|
||||
return actual
|
||||
default:
|
||||
storageError := storagedriver.Error{
|
||||
DriverName: base.StorageDriver.Name(),
|
||||
Enclosed: e,
|
||||
}
|
||||
|
||||
return storageError
|
||||
}
|
||||
return e
|
||||
}
|
||||
|
||||
// GetContent wraps GetContent of underlying storage driver.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue