43 lines
613 B
Go
43 lines
613 B
Go
package ierr
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type PageError struct {
|
|
Message string
|
|
Code int
|
|
}
|
|
|
|
func (p PageError) Error() string {
|
|
return p.Message
|
|
}
|
|
|
|
func (p PageError) String() string {
|
|
return p.Message
|
|
}
|
|
|
|
func Bomb(code int, format string, a ...interface{}) {
|
|
panic(PageError{Code: code, Message: fmt.Sprintf(format, a...)})
|
|
}
|
|
|
|
func Dangerous(v interface{}, code ...int) {
|
|
if v == nil {
|
|
return
|
|
}
|
|
|
|
c := 200
|
|
if len(code) > 0 {
|
|
c = code[0]
|
|
}
|
|
|
|
switch t := v.(type) {
|
|
case string:
|
|
if t != "" {
|
|
panic(PageError{Code: c, Message: t})
|
|
}
|
|
case error:
|
|
panic(PageError{Code: c, Message: t.Error()})
|
|
}
|
|
}
|