GoCollections/exceptions/PackageException.go
2022-03-28 18:19:05 +08:00

33 lines
639 B
Go

package exceptions
type PackageException struct {
RuntimeException
err any
}
func NewPackageException(err any, exceptionMessage string, config *ExceptionConfig) *PackageException {
return &PackageException{
RuntimeException: NewRuntimeException(err, exceptionMessage, config.AddSkipStack(1)),
err: err,
}
}
func (p *PackageException) Err() any {
return p.err
}
func UnpackException(err any) any {
for err != nil {
switch err.(type) {
case *PackageException:
err = err.(*PackageException).Err()
return err
case Exception:
err = err.(Exception).Cause()
default:
return err
}
}
return nil
}