func Handle(err *error) {
	v := recover()
	if v == nil {
		return
	}
	if err == nil {
		panic(v)
	}
	if e, ok := v.(error); ok && e != nil {
		*err = e
		return
	}
	panic(v)
}
Handle sets err to recovered value if it is an error
package must
import "fmt"
func Do[A any](a A, err error) A {
    if err != nil {
        panic(err)
    }
    return a
}
func Do0(err error) {
	if err != nil {
		panic(err)
	}
}
func Do2[A, B any](a A, b B, err error) (A, B) {
	if err != nil {
		panic(err)
	}
	return a, b
}