Files
hamster-tycoon/storage/dao/database_error.go
2020-01-05 23:20:38 +01:00

33 lines
461 B
Go
Executable File

package dao
import (
"fmt"
)
type Type int
const (
ErrTypeNotFound Type = iota
ErrTypeDuplicate
ErrTypeForeignKeyViolation
)
type DAOError struct {
Cause error
Type Type
}
func NewDAOError(t Type, cause error) error {
return &DAOError{
Type: t,
Cause: cause,
}
}
func (e *DAOError) Error() string {
if e.Cause != nil {
return fmt.Sprintf("Type %d: %s", e.Type, e.Cause.Error())
}
return fmt.Sprintf("Type %d: no cause given", e.Type)
}