-
Notifications
You must be signed in to change notification settings - Fork 1
/
new.go
39 lines (37 loc) · 868 Bytes
/
new.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package trace
import "fmt"
func NewOrAdd(step int, pkgName, funName string, err error, desc string) Traceback {
//on any scenario err could be nil
var currentTrace Traceback
if err == nil {
return Traceback{
MainErr: ErrorData{
PackageName: pkgName,
FuncName: funName,
Step: step,
Description: fmt.Sprintf("*%s*", desc),
}}
} else {
var ok bool
currentTrace, ok = err.(Traceback)
if !ok {
return Traceback{
MainErr: ErrorData{
PackageName: pkgName,
FuncName: funName,
Step: step,
Err: err,
Description: fmt.Sprintf("*%s*", desc),
ErrString: err.Error(),
}}
}
}
errData := ErrorData{
Step: step,
PackageName: pkgName,
FuncName: funName,
Description: desc,
}
currentTrace.Trace = append(currentTrace.Trace, errData)
return currentTrace
}