@@ -97,11 +97,7 @@ func FirstError(errs ...error) error {
9797 return nil
9898}
9999
100- func Exit (items ... interface {}) {
101- if len (items ) == 0 {
102- items = append (items , "empty exit" )
103- }
104-
100+ func MergeErrItems (items ... interface {}) error {
105101 var err error
106102 switch casted := items [0 ].(type ) {
107103 case error :
@@ -127,6 +123,14 @@ func Exit(items ...interface{}) {
127123 }
128124 }
129125
126+ return err
127+ }
128+
129+ func Exit (items ... interface {}) {
130+ if len (items ) == 0 {
131+ items = append (items , "empty exit" )
132+ }
133+ err := MergeErrItems (items ... )
130134 PrintError (err )
131135 os .Exit (1 )
132136}
@@ -135,32 +139,7 @@ func Panic(items ...interface{}) {
135139 if len (items ) == 0 {
136140 items = append (items , "empty panic" )
137141 }
138-
139- var err error
140- switch casted := items [0 ].(type ) {
141- case error :
142- err = casted
143- case string :
144- err = New (casted )
145- default :
146- err = New (s .UserStrStripped (casted ))
147- }
148-
149- for i , item := range items {
150- if i == 0 {
151- continue
152- }
153-
154- switch casted := item .(type ) {
155- case error :
156- err = Wrap (err , casted .Error ())
157- case string :
158- err = Wrap (err , casted )
159- default :
160- err = Wrap (err , s .UserStrStripped (casted ))
161- }
162- }
163-
142+ err := MergeErrItems (items ... )
164143 // PrintStacktrace(err)
165144 panic (err )
166145}
@@ -185,15 +164,6 @@ func CastRecoverError(errInterface interface{}, strs ...string) error {
185164 return Wrap (err , strs ... )
186165}
187166
188- func Recover (strs ... string ) error {
189- if errInterface := recover (); errInterface != nil {
190- err := CastRecoverError (errInterface , strs ... )
191- PrintError (err )
192- return err
193- }
194- return nil
195- }
196-
197167func RecoverAndExit (strs ... string ) {
198168 if errInterface := recover (); errInterface != nil {
199169 err := CastRecoverError (errInterface , strs ... )
0 commit comments