You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
1.8 KiB

3 years ago
/*
---------------------------------------------------------
Project activething
Active Thing (activething.com) git.activething.com/go
File name err_cause.go
Created by DEV
Modified 23/10/2023
Copyright 2023 activething.com
---------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
*/
package errs
import "activething.com/go/gogo/core/opts"
type (
// ErrCause
// Define una estructura para almacenar un error y su causa previa
// Implmenta error, Unwrap
//
ErrCause struct {
error
cause error
}
)
3 years ago
3 years ago
func NewErrCause(err, cause error) *ErrCause {
if err == nil {
if cause == nil {
return nil
}
return &ErrCause{error: cause}
}
return &ErrCause{error: err, cause: cause}
}
3 years ago
3 years ago
func (e ErrCause) WithInfo(options ...opts.OptionFnc[ErrInfo]) *ErrInfo {
3 years ago
return NewErrInfo(e, options...) }
3 years ago
func (e ErrCause) Stack() StackTrace {
3 years ago
return getStackTrace(e.cause) }
func (e ErrCause) Cause() error {
return e.cause }
func (e ErrCause) Unwrap() error {
return e.cause }
3 years ago
/*
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
I HAVE NO DESIRE TO WALK ON WATER," SAID SIDDHARTA.
"LET THE OLD SHRAMANAS SATISFY THEMSELVES WITH SUCH SKILLS.
SIDDHARTA
- HERMANN HESSE -
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/

Powered by TurnKey Linux.