func throw(err error) {
	panic(&osError{err})
}
Report error and stop executing. Wraps error an osError for handlePanics() to
distinguish them from genuine panics.
package lzma
import (
	"fmt"
	"io"
	"strconv"
	"strings"
)
const (
	BestSpeed          = 1
	BestCompression    = 9
	DefaultCompression = 5
)
type osError struct {
	error
}
type argumentValueError struct {
	msg string
	val interface{}
}
func (e *argumentValueError) Error() string {
	return fmt.Sprintf("illegal argument value error: %s with value %v", e.msg, e.val)
}