GoCollections/exceptions/PackageException.go

34 lines
687 B
Go
Raw Normal View History

2021-07-06 14:32:01 +08:00
package exceptions
type PackageException struct {
RuntimeException
err interface{}
}
2022-03-21 11:02:41 +08:00
func NewPackageException(err interface{}, exceptionMessage string, config *ExceptionConfig) *PackageException {
config.AddSkipStack(1)
2021-07-06 14:32:01 +08:00
return &PackageException{
2022-03-21 11:02:41 +08:00
RuntimeException: NewRuntimeException(err, exceptionMessage, config),
2021-07-06 14:32:01 +08:00
err: err,
}
}
func (p *PackageException) Err() interface{} {
return p.err
}
func UnpackException(err interface{}) interface{} {
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
}