errors.go
func GetError(args ...interface{}) error {
	for i := len(args) - 1; i >= 0; i-- {
		arg := args[i]
		if arg != nil {
			if err, ok := arg.(error); ok {
				return err
			}
		}
	}
	panic("no argument of type error")
}
func GetError(args ...interface{}) error {
	for i := len(args) - 1; i >= 0; i-- {
		arg := args[i]
		if arg != nil {
			if err, ok := arg.(error); ok {
				return err
			}
		}
	}
	panic("no argument of type error")
}
// GetError returns the last argument that is of type error,
// panics if none of the passed args is of type error.
// Note that GetError(nil) will panic because nil is not of type error but interface{}