github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgErr/panic_test.go (about) 1 package kmgErr 2 3 import ( 4 "testing" 5 6 . "github.com/bronze1man/kmg/kmgTest" 7 ) 8 9 /* 10 func TestPanic(ot *testing.T) { 11 defer func() { 12 r := recover() 13 if r == nil { 14 return 15 } 16 fmt.Println(r) 17 debug.PrintStack() 18 }() 19 f1() 20 } 21 22 func f1() { 23 panic(1) 24 } 25 */ 26 27 func TestPanicToError(ot *testing.T) { 28 flag := 1 29 err := PanicToError(func() { 30 flag = 2 31 }) 32 Equal(flag, 2) 33 Equal(err, nil) 34 35 err = PanicToError(func() { 36 flag = 3 37 panic(nil) 38 flag = 4 39 }) 40 Equal(flag, 3) 41 Equal(err, nil) 42 43 err = PanicToError(func() { 44 panic(1) 45 flag = 6 46 }) 47 Equal(flag, 3) 48 Ok(err != nil) 49 Equal(err.Error(), "1") 50 }